У чому різниця між cscript і wscript? Що найкраще для автоматизації Telnet та FTP у Windows?
Відповіді:
У Windows виконуваний файл є або консольним додатком, або додатком Windows (або додатком SFU або Native, але це тут не має значення).
Ядро перевіряє прапор у виконуваному файлі, щоб визначити який.
При запуску з допомогою 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, і ви також повинні побачити це тут: