В чем разница между cscript и wscript? Что лучше всего подходит для автоматизации Telnet и FTP в Windows?
В 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, и вы также должны увидеть это здесь: