Как и было изначально задано, вот решение VBScript ...
Описанная проблема, вероятно, связана с "Script-Working-Directory".
Попробуйте это ...
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
Примечания:
'' 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
Более подробную информацию о "objShell.Run" можно найти здесь: http://ss64.com/vb/run.html
Приведенные выше примеры заставят VBScript ждать завершения каждого вызываемого «.bat» и возвращать «ExitCode», прежде чем продолжить.
Если вы не хотите, чтобы VBScript ждал завершения одного .bat, прежде чем переходить к следующему, установите blnWaitOnReturn = False и удалите intExitCode, например:
...
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
...
Если вам нужна возможность получить «Status» и «ProcessID» и получить доступ к стандартным потокам исполняемого файла для чтения / записи в stdout / stderr процесса в режиме реального времени во время выполнения процесса, используйте «objShell». .Exec».
Более подробную информацию о "objShell.Exec" можно найти здесь: http://ss64.com/vb/exec.html