Aidez-moi à exécuter une série de .bat scénarioVBS Script - Exécuter série d'emplois .batch
ils se trouvent comme ceci:
p: \ comarquer \ export.bat p: \ Générique \ export.bat p: \ Tri-Marque \ export.bat
Merci à l'avance, Cordialement, Joe
Aidez-moi à exécuter une série de .bat scénarioVBS Script - Exécuter série d'emplois .batch
ils se trouvent comme ceci:
p: \ comarquer \ export.bat p: \ Générique \ export.bat p: \ Tri-Marque \ export.bat
Merci à l'avance, Cordialement, Joe
trouvé une manière qui fonctionne, aurait essayé avant tout. Je suis un peu gêné qu'il était aussi facile en fait:
cd P: \ comarquer \
CALL Export.bat
cd P: \ Generic \
CALL Export. bat
cd P: \ TriBrand \
CALL Export.bat
cd P: \ UBA \
CALL Export.bat
serait une simple commande shell faire? Vous pouvez appeler cela à partir d'une invite de commande:
for /R %F in (*.bat) do "%F"
ou les éléments suivants d'un fichier .bat:
for /R %%F in (*.bat) do call "%%F"
Comme initialement demandé, voici une solution VBScript ...
Le problème décrit est probablement lié à la « Script-travail-Répertoire ".
Try this ...
Dim objShell
Dim blnWaitOnReturn
Dim strOriginalCD
Dim strCmd
Dim intWindowStyle
Dim intExitCode
Set objShell = WScript.CreateObject("Wscript.Shell")
'' if necessary, save the original "Script-Working-Directory"
strOriginalCD = objShell.CurrentDirectory
intWindowStyle = 1
blnWaitOnReturn = True
objShell.CurrentDirectory = "p:\Co-Brand\"
strCmd = "%comspec% /K export.bat"
intExitCode = objShell.Run(strCmd, intWindowStyle, blnWaitOnReturn)
objShell.CurrentDirectory = "p:\Generic\"
strCmd = "%comspec% /K export.bat"
intExitCode = objShell.Run(strCmd, intWindowStyle, blnWaitOnReturn)
objShell.CurrentDirectory = "p:\Tri-Brand\"
strCmd = "%comspec% /K export.bat"
intExitCode = objShell.Run(strCmd, intWindowStyle, blnWaitOnReturn)
'' if necessary, restore the original "Script-Working-Directory"
objShell.CurrentDirectory = strOriginalCD
Notes:
'' If filename contains spaces make sure to add double-quotes around filename
strCmd = "%comspec% /K " & Chr(34) & "File name with spaces.bat" & Chr(34)
'' To run the commands in a "Hidden" window, use:
intWindowStyle = 0
'' To run the commands "Minimized", use:
intWindowStyle = 7
Plus d'info sur "objShell.Run" se trouve ici: http://ss64.com/vb/run.html
Les exemples ci-dessus provoqueront VBScript Attendez que chaque ".bat" appelé se termine et retourne un "ExitCode" avant de continuer.
Si vous ne voulez pas VBScript d'attendre un « .bat » pour terminer avant de passer à la suivante puis définissez blnWaitOnReturn = False, et enlever intExitCode comme:
...
blnWaitOnReturn = False
objShell.CurrentDirectory = "p:\Co-Brand\"
strCmd = "%comspec% /K export.bat"
objShell.Run strCmd, intWindowStyle, blnWaitOnReturn
objShell.CurrentDirectory = "p:\Generic\"
strCmd = "%comspec% /K export.bat"
objShell.Run strCmd, intWindowStyle, blnWaitOnReturn
objShell.CurrentDirectory = "p:\Tri-Brand\"
strCmd = "%comspec% /K export.bat"
objShell.Run strCmd, intWindowStyle, blnWaitOnReturn
...
Si vous souhaitez pouvoir obtenir le "Status" et "ProcessID", et accéder aux flux standards de l'exécutable à lire/écrire à stdout/stderr du processus en temps réel pendant l'exécution du processus, puis utiliser "objShell.Exec".
Plus d'information sur "objShell.Exec "peut être trouvé ici: http://ss64.com/vb/exec.html
bien que ce que je voudrais vraiment faire est d'exécuter un script de traitement par lots à la fin d'un script .vbs J'ai eu des problèmes en essayant de les exécuter depuis les scripts cmd et .bat avec Pour une raison inconnue, il semble utiliser le même chemin que celui d'où vous l'exécutez plutôt que d'où le script .bat a été placé. Espérant qu'un script .vbs aiderait, mais la façon dont il est recherché qu'il ne va probablement pas.Un moyen de spécifier le chemin, d'utiliser le chemin où le fichier est placé? – jmituzas