Різниця між wscript та cscript


84

У чому різниця між cscript і wscript? Що найкраще для автоматизації Telnet та FTP у Windows?

Відповіді:


129

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


5
@ McDonald's Я просто намагаюся заробляти на життя. У мене немає реального вибору, крім використання Stack Overflow, оскільки альтернативи немає, і я ненавиджу те, як власники продовжують користуватися сайтом, щоб висловлювати політичні зауваження щодо того, що ускладнює перетравлення їхнього сніданку того місяця. Тож моє ім’я користувача - це мій протест проти такого роду політизації кожної проклятої речі .
Бен,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.