У чому різниця між 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, і ви також повинні побачити це тут: