Как сохранить окно команды VBScript открытым во время выполнения
когда я выполняю VBScript, окно команды, которое он создает, быстро закрывается, прежде чем пользователь получит возможность прочитать вывод. Как я могу заставить окно оставаться открытым без изменения реестра windows?
этот код:
Set objShell = WScript.CreateObject("WScript.shell")
objShell.Run "SyncToyCmd.exe -R", 1, True
3 ответов
вы можете отправить команду выполнения через cmd.exe
интерпретатор команд, а также команда паузы, которая даст пользователю Press any key to continue . . .
запрос, чтобы закрыть окно.
objShell.run "%comspec% /c ""SyncToyCmd.exe -R & pause""", 1, True
или чтобы сохранить окно живым, используйте /k
флаг вместо /c
:
objShell.run "%comspec% /k SyncToyCmd.exe -R", 1, True
но будьте осторожны, ваш VBScript не будет продолжаться (или завершаться), пока это окно cmd не будет закрыто вручную.
на %comspec%
переменная окружения ссылается на правильную команду откройте интерпретатор команд в соответствии с операционной системой. На моей машине XP, например, %comspec%
равна C:\WINDOWS\system32\cmd.exe
.
посмотреть cmd.exe
документация здесь: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true
для получения дополнительной информации об использовании &
и &&
разделитель команд:https://support.microsoft.com/en-us/kb/279253
предполагая, что это всплывающее окно команды, которое вы хотите сохранить открытым (а не тот, в котором работает ваш VBScript), вы можете использовать CMD.exe
' s для достижения этого:
Set objShell = WScript.CreateObject("WScript.shell")
objShell.Run "cmd.exe /C ""SyncToyCmd.exe -R & Pause"" ", 1, True
сделайте его спящим на некоторое время, возможно, скажите пользователю, что он закроется через 5 секунд?
Set WScript = CreateObject("WScript.Shell")
WScript.Sleep 5000