В Windows исполняемый файл - это либо консольное приложение, либо приложение Windows (или SFU или родное приложение, но это не имеет значения).
Ядро проверяет флаг в исполняемом файле, чтобы определить, какое.
При запуске с использованием CreateProcess
функции WinAPI, если это консольное приложение, ядро создаст для него консольное окно, если его не имеет родительский процесс, и присоединит STDIN
, STDOUT
и STDERR
потоков в консоль.
Если это приложение для Windows, консоль не будет создана, а STDIN
, STDOUT
и STDERR
будут закрыты по умолчанию.
WSCRIPT.EXE
и CSCRIPT.EXE
практически полностью идентичны, за исключением того, что одно помечено как приложение Windows, а другое помечено как консольное приложение (угадайте, какой путь!).
Таким образом, ответ таков: если вы хотите, чтобы в вашем скрипте было окно консоли, используйте CSCRIPT.EXE
. Если вы не хотите иметь окно консоли, используйте WSCRIPT.EXE
.
Это также влияет на некоторые варианты поведения, такие как команда WScript.Echo. В CSCRIPT.EXE
это записывает строку в окно консоли. В WSCRIPT.EXE
отображается окно сообщения.
Для вашего приложения я предлагаю CSCRIPT.EXE
. Я думаю, что вы также должны посмотреть на PuTTY и PLink, и вы также должны увидеть это здесь: