Как сохранить окно команды VBScript открытым во время выполнения - PullRequest
10 голосов
/ 23 сентября 2011

Когда я выполняю VBScript, создаваемое им командное окно быстро закрывается, прежде чем пользователь получает возможность прочитать вывод.Как я могу заставить окно оставаться открытым без изменения реестра Windows?

Это код:

Set objShell = WScript.CreateObject("WScript.shell") 
objShell.Run "SyncToyCmd.exe -R", 1, True

Ответы [ 3 ]

16 голосов
/ 23 сентября 2011

Вы можете отправить команду выполнения через интерпретатор команд 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

2 голосов
/ 23 сентября 2011

Предполагая, что это всплывающее окно команд, которое вы хотите оставить открытым (а не окно, на котором работает ваш VBScript), вы можете использовать команду CMD.exe Pause для достижения этой цели:

Set objShell = WScript.CreateObject("WScript.shell") 
objShell.Run "cmd.exe /C ""SyncToyCmd.exe -R & Pause"" ", 1, True
0 голосов
/ 23 сентября 2011

Задержите его на время, может быть, сообщите пользователю, что он закроется через 5 секунд?

Set WScript = CreateObject("WScript.Shell") 
WScript.Sleep 5000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...