2011-12-30 1 views
66

В чем разница между cscript и wscript? Что лучше всего для автоматизации Telnet и FTP в Windows?Разница между wscript и cscript

+2

возможно дубликат [VBS cscript.exe WScript.exe] (Http: // StackOverflow. com/questions/5788303/vbs-cscript-exe-wscript-exe) – McDowell

ответ

105

В Windows исполняемый файл представляет собой консольное приложение или приложение Windows (или приложение SFU или Native, но это не имеет значения здесь).

Ядро проверяет флаг в исполняемом файле, чтобы определить, какой.

При запуске с использованием CreateProcess функции WinAPI, если это консольное приложение, ядро ​​будет создавать консольное окно для него, если родительский процесс не имеет один, и прикрепить STDIN, STDOUT и STDERR потоки на консоль.

Если это приложение Windows, консоль не будет создана, а STDIN, STDOUT и STDERR будут закрыты по умолчанию.

WSCRIPT.EXE и CSCRIPT.EXE почти точно идентичны, за исключением того, что один помечен как приложение для Windows, а другой помечен как консольное приложение (угадайте, какой путь!).

Итак, ответ: если вы хотите, чтобы ваш скрипт имел консольное окно, используйте CSCRIPT.EXE. Если вы хотите, чтобы у НЕ было консольного окна, используйте WSCRIPT.EXE.

Это также влияет на некоторые виды поведения, такие как команда WScript.Echo. В CSCRIPT.EXE это записывает строку в окно консоли. В WSCRIPT.EXE отображается сообщение.

Для вашего применения я предлагаю CSCRIPT.EXE. Я думаю, вы также должны смотреть на PuTTY и бренчать, и вы должны увидеть это здесь:

+3

@ McDonald's Я просто зарабатываю на жизнь. У меня нет реального выбора, кроме использования Stack Overflow, поскольку альтернативы нет, и я ненавижу то, как владельцы продолжают использовать сайт, чтобы сделать политические точки о том, что затрудняет переваривание их завтрака в этом месяце. Поэтому мое имя пользователя - мой протест против такой политизации * каждой проклятой вещи *. – Ben