2 pièce(s) jointe(s)
Schtasks, chemin de l'éxécutable avec des espaces, solution
bonsoir,
j'essaie de lancer par programmation (visual basic 2008) une commande de batch (Schtasks ...) sous XP Pro SP3. Elle fonctionne si mon exe est par exemple calc.exe,
par contre dés que je veux executer un programme dans un des dossiers, impossible!!
Voici ma ligne de commande: doc1
dans la console ouverte, la tâche a bien été mise en planifié: doc2.jpg
et le message dans le log des tâches planifiées aprés traitement: doc3.jpg
au vu des trés nombreux essais, recherches .. je suis incapable de passer correctement le paramétre de l'arborescence du programme à exécuter et de sa cible (Démarrer dans), par contre le delete des batchs en liste est OK
Cette tâche fonctionne si elle est définie manuellement par l'utilitaire 'Création de tâches planifiées'
Voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| ' effacer le fichier batch qui pourrait exister
CmdLigneJob = "cmd /c schtasks.exe /delete /S \\" & S_system & " /U " & U_username & " /P " & P_password & " /TN " & TN_taskname & " /F"
Shell(CmdLigneJob, AppWinStyle.MinimizedNoFocus, True)
' preparer les paramétres du prochain
If Batch.Checked = True Then
If Grab(SelGrab) = "Hebdomadaire" Then D_days = AbrevQuelJour(SelQuelJour)
If Grab(SelGrab) = "Quotidienne" Then D_days = "*"
CmdLigneJob = "cmd /k schtasks /Create /S \\" & S_system & " /U " & U_username & " /P " & P_password & " /TN " & TN_taskname & " /TR " & TR_taskrun & " /SC " & SC_schedule & " /D " & D_days & " /ST " & ST_starttime
MsgBox(CmdLigneJob)
Shell(CmdLigneJob, AppWinStyle.MinimizedNoFocus, True)
End If |
le user est définit à l'éxecution: l'administrateur et son mot de passe (seul utilisateur du PC)
Merci de votre aide, je séche!
PS incapable de passer la troisiéme piéce jointe ! mystére
bref le message de l'ordonanceur est de deux parties, d'abord
1 0x00000003: Le chemin d'accés spécifié est introuvable.
2 0x80070005: Accés refusé
Quelques précisions suppmémentaires
Si l'executable à lancer est rangé dans "C:\DossierErnie\ProgrammeErnie\" la tâche planifiée est créée et exécutée! Bravo!!!
Par contre si le chemin est "C:\Dossier Ernie\Programme Ernie\" les blancs mettent la pagaïlle, la tache planifiée est créée et à l'exécution plouf
Pour éviter ce souci je pensai qu'il fallait remplacer les blancs dans la ligne de commande par _ soit: "C:\Dossier_Ernie\Programme_Ernie\" erreur, visiblement, ça ne marche pas
Quel est donc ce fichu caractére de remplacement des blancs?
Merci de vos contributions
Flamby38 a trouvé la solution
Citation:
Envoyé par
Flamby38
salut,
essaye de rajouter des \ en plus des guillemets comme décrit dans le lien suivant :
autre possibilité, tu peux essayer d'utiliser l'argument /V1, mais je sais pas si il existe sous XP, c'est peut etre valable que sur vista.
Bonne chance.
Super et un trés grand merci problème résolu, ce qui marche:
1 en fichier cmd:
Code:
1 2
|
Schtasks /Create /TN "BatchGuide" /TR "\"C:\Program Files\Team MediaPortal\Guide\Programmes\Guide.exe\"arguments" /SC "Toutes les semaines" /SD 08/06/2008 /ST 10:37:00 |
2 dans un programme avec shell:
Code:
1 2 3 4 5
|
TR_taskrun = Guillemet + "\" + Guillemet + "C:\Program Files\Team MediaPortal\Guide\Programmes\Guide.exe\" + Guillemet + "arguments" + Guillemet
CmdLigneJob = "schtasks /Create /RU " & U_username & " /RP " & P_password & " /TN " & TN_taskname & " /TR " & TR_taskrun & " /SC " & SC_schedule & " /D " & D_days & " /ST " & ST_starttime
Shell(CmdLigneJob, AppWinStyle.MinimizedNoFocus, True) |
dans ce dernier exemple Guillemet, variable string, Guillemet = Chr(34)
J'ai modifié le titre pour faciliter la recherche de ceux qui rameront avec le même problème, merci pour ton aide
PS: V1 n'existe pas sous XP