Что такое команда или самый быстрый способ вывода результатов на консоль с использованием vbscript?
165
Ты имеешь в виду:
Wscript.Echo "Like this?"
Если вы запустите его в wscript.exe
(обработчик по умолчанию для расширения .vbs, так что вы получите, если дважды щелкнуть скрипт), вы получите диалоговое окно «MessageBox» с вашим текстом в нем. Если вы запустите его, cscript.exe
вы получите вывод в окне консоли.
MsgBox("text")
или ,MsgBox(object.property)
ноWscript.Echo
проще писать. Спасибо.WScript.Echo
должен использоваться для того, работаете ли вы черезWScript
илиCScript
. То есть, неCScript.Echo
, в случае , если в будущем Googlers чудо. (Однако очень рад, что msgboxes исчезли [при запуске сcscript
]; спасибо.)WScript.Echo
. Полагаю, если вы хотите полностью остаться в рамках WScript, вы можете сделать что-то ужасно хитрое, например, Exec, запустив другой процесс, чтобы отправить SendKeys родительскому процессу, чтобы закрыть MessageBox.popup
метод. Очень похоже на,echo
но позволяет вам указать тайм-аут, после которого он автоматически закроет всплывающее окно. Очень удобно и просто в использовании: technet.microsoft.com/en-us/library/ee156593.aspxЭто было найдено в сценариях Dragon-IT и в хранилище кода .
Вы можете сделать это с помощью следующего и держаться подальше от различий cscript / wscript, что позволит вам получить тот же вывод на консоль, что и у командного файла. Это может помочь, если вы вызываете VBS из командного файла и вам нужно, чтобы он выглядел без проблем.
источник
WScript.Echo
. На самом деле, разница увеличивается, потому что скрипт больше не будет работать под WScript. Это правильный метод, который имеет свои применения, например, если нужно написать в StdErr, но в контексте этого ответа он вводит в заблуждение.WScript.Echo
:cscript //b foobar.vbs
Запускаетсяfoobar.vbs
без вывода на консоль, но с помощью метода Роба вы можете получить вывод даже при переходе\\b
кcscript.exe
Вам нужно только форсировать cscript вместо wscript. Я всегда использую этот шаблон. Функция ForceConsole () выполнит ваши vbs в cscript, также у вас есть хороший псевдоним для печати и сканирования текста.
источник
Я наткнулся на этот пост и вернулся к подходу, который я использовал некоторое время назад, который похож на @ MadAntrax's.
Основное отличие состоит в том, что он использует пользовательский класс VBScript, чтобы обернуть всю логику для переключения на CScript и вывода текста на консоль, что делает основной сценарий немного чище.
Это предполагает, что вашей целью является потоковая передача данных на консоль, а не вывод сообщений в окна сообщений.
Класс cCONSOLE находится ниже. Чтобы использовать его, включите полный класс в конец вашего скрипта, а затем создайте его экземпляр прямо в начале скрипта. Вот пример:
Вот код для класса cCONSOLE
источник
Существует пять способов вывода текста на консоль:
WScript.Echo выведет на консоль, но только если скрипт запущен с использованием cscript.exe. Он будет выводиться в окна сообщений, если начал использовать wscript.exe.
WScript.StdOut.Write и WScript.StdOut.WriteLine всегда будут выводиться на консоль.
StdOut.Write и StdOut.WriteLine также всегда будут выводиться на консоль. Это требует дополнительного создания объекта, но это примерно на 10% быстрее, чем WScript.Echo.
источник