2014-11-19 3 views
0

Я пытаюсь запустить код CMD из файла vbscript (vbs).Незаметно запускать внешнюю команду

Я пробовал это, но он не скрывает окно cmd.

Dim oShell 
Set oShell = WScript.CreateObject ("WScript.Shell") 
oShell.run "cmd.exe /K ping example.org" 
Set oShell = Nothing 

Каков правильный способ сделать это?

+1

«oShell.run» cmd.exe/K ping example.org », 0, True' заставит его замолчать, но'/K' предотвратит завершение скрипта, так как CMD оставит приглашение открытым. Это то, что вы действительно хотите сделать? Или у вас есть больший вопрос? – Matt

+0

Как открыть несколько cmd.exe? Мне нужно одновременно пинговать несколько сайтов. – user198989

+0

Как у вас есть это сейчас, вы не получите никакой информации. В чем причина для проверки этих внешних сайтов? Хотите убедиться, что мы исправляем вашу проблему [real] (http://xyproblem.info/). – Matt

ответ

2
Dim oShell 
Set oShell = WScript.CreateObject ("WScript.Shell") 
oShell.run "cmd.exe ping example.org",0,True 
Set oShell = Nothing 

Согласно MSDN для .Run вы можете использовать дополнительный параметр для intWindowStyle, который будет скрывать наиболее окна с экрана, установив его равным 0. Правда, чтобы сказать операцию не ждать до завершения перед выполнением скрипта. Это, конечно, необязательно.

Если вы спрячете окно, вы должны удалить /K, иначе сценарий никогда не будет завершен.

+0

Говоря «сценарий никогда не завершится», вы имеете в виду, что сценарий не остановится, не так ли? – user198989

+0

@ user198989 Правильно. Приглашение cmd останется открытым. Поскольку у вас нет возможности взаимодействовать с ним через GUI, вам нужно будет убить процесс как для него, так и для wscript.exe – Matt

Смежные вопросы