Unterschied zwischen wscript und cscript


83

Was ist der Unterschied zwischen cscript und wscript? Welches ist am besten für die Telnet- und FTP-Automatisierung unter Windows geeignet?

Antworten:


125

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 CreateProcessWinAPI 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, STDOUTund STDERRStröme an die Konsole.

Wenn es sich um eine Windows - Anwendung ist, wird keine Konsole erstellt und STDIN, STDOUTund STDERRwird standardmäßig geschlossen werden.

WSCRIPT.EXEund CSCRIPT.EXEsind 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.EXEschreibt dies eine Zeile in das Konsolenfenster. Darin WSCRIPT.EXEwird 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:


5
@ McDonald's Ich versuche nur, meinen Lebensunterhalt zu verdienen. Ich habe keine andere Wahl, als Stack Overflow zu verwenden, da es keine Alternative gibt, und ich verabscheue die Art und Weise, wie die Eigentümer die Website weiterhin nutzen, um politische Punkte darüber zu machen, was es schwierig macht, ihr Frühstück in diesem Monat zu verdauen. Mein Benutzername ist also mein Protest gegen diese Art der Politisierung aller verdammten Dinge .
Ben
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.