Помогите мне запустить серию .bat-скриптов
они расположены так:
p:\Co-Brand\export.bat p:\Generic\export.bat p:\Tri-Brand\export.bat
Заранее спасибо, С уважением, Джо
Помогите мне запустить серию .bat-скриптов
они расположены так:
p:\Co-Brand\export.bat p:\Generic\export.bat p:\Tri-Brand\export.bat
Заранее спасибо, С уважением, Джо
Подойдет ли простая команда оболочки? Вы можете вызвать это из командной строки:
for /R %F in (*.bat) do "%F"
или следующее из файла .bat:
for /R %%F in (*.bat) do call "%%F"
нашел способ, который работает, должен был попробовать это в первую очередь. Я немного смущен тем, что на самом деле это было так просто:
компакт-диск P:\Co-бренд\
ЗВОНОК Экспорт.bat
компакт-диск P:\Универсальный\
ЗВОНОК Экспорт.bat
компакт-диск P:\TriBrand\
ЗВОНОК Экспорт.bat
компакт-диск P:\UBA\
ЗВОНОК Экспорт.bat
Как изначально было задано, вот решение 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