Как сохранить окно команды 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 Pause
Команда для достижения этого:
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