Antworten:
In Windows ist eine ausführbare Datei entweder eine Konsolenanwendung oder eine Windows-Anwendung (oder eine SFU- oder native Anwendung, aber das spielt hier keine Rolle).
Der Kernel überprüft ein Flag in der ausführbaren Datei, um festzustellen, welches.
Bei der Verwendung von Ausgang CreateProcess
WinAPI Funktion, wenn es dich um eine Konsolenanwendung ist, wird der Kern ein Konsolenfenster dafür zu erstellen , wenn die Eltern - Prozess nicht ein hat, und befestigen die STDIN
, STDOUT
und STDERR
Ströme an die Konsole.
Wenn es sich um eine Windows - Anwendung ist, wird keine Konsole erstellt und STDIN
, STDOUT
und STDERR
wird standardmäßig geschlossen werden.
WSCRIPT.EXE
und CSCRIPT.EXE
sind fast genau identisch, außer dass eine als Windows-Anwendung und die andere als Konsolenanwendung gekennzeichnet ist (Ratet mal, in welche Richtung!).
Die Antwort lautet also: Wenn Ihr Skript ein Konsolenfenster haben soll, verwenden Sie CSCRIPT.EXE
. Wenn Sie möchten, dass es KEIN Konsolenfenster gibt, verwenden Sie WSCRIPT.EXE
.
Dies wirkt sich auch auf einige Verhaltensweisen aus, z. B. den Befehl WScript.Echo. In a CSCRIPT.EXE
schreibt dies eine Zeile in das Konsolenfenster. Darin WSCRIPT.EXE
wird eine Messagebox angezeigt.
Für Ihre Bewerbung schlage ich vor CSCRIPT.EXE
. Ich denke, Sie sollten sich auch PuTTY und PLink ansehen, und das sollten Sie auch hier sehen: