VBS команда запуска не выводится - PullRequest
1 голос
/ 02 декабря 2011

Хорошо, я создал небольшой скрипт для вызова «net file» и выкачал вывод в файл.В именах файлов нет пробелов, и все выглядит нормально, когда я запускаю его в интерактивном режиме.Поэтому я запускаю следующее и не получаю ни результатов, ни ошибок:

set oWShell = CreateObject("WScript.Shell")
owshell.run "net file > C:\openfiles.txt"
Set owShell = nothing

Теперь, если изменить это немного, чтобы показать, выполнить ту же команду (и оставить окно моей команды открытым), он работает так, как ожидалось (за исключениемон держит окно cmd открытым, чего у меня не может быть)

set oWShell = CreateObject("WScript.Shell")
owshell.run "%comspec% /k net file > C:\openfiles.txt"
Set owShell = nothing

Должно быть что-то очевидное, что я просто скучаю.Я касаюсь vbs только один раз в голубой луне, так что я не привык к этому.

Любая помощь будет признательна!Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 02 декабря 2011

Вам нужна оболочка (т.е.% comspec%), чтобы получить такие функции оболочки, как перенаправление; то, что вы просили, - это персистентное окно: / k позволяет оболочке оставаться открытой (вместо этого попробуйте / c), и вы должны использовать второй и третий параметр метода .Run, чтобы получить скрытое окно (и, возможно, дождаться процесса до ты убираешь owShell).

0 голосов
/ 18 мая 2012

Взгляните на Выполнить . Изменение

owshell.run "%comspec% /k net file > C:\openfiles.txt"

до

owshell.run "%comspec% /c net file > C:\openfiles.txt", 0, FALSE

Это позволит скрыть cmd и продолжить работу с остальным сценарием ... Если вы хотите дождаться окончания выполнения команды, измените FALSE на TRUE.

Также имейте в виду, что некоторые машины смешно позволяют вам записывать файлы непосредственно в C: \. Возможно, создайте тестовую папку и напишите туда!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...