Разница между wscript и cscript

86

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

рашок
источник

Ответы:

130

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

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

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

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

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

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

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

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

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