Diferencia entre wscript y cscript

84

¿Cuál es la diferencia entre cscript y wscript? ¿Cuál es mejor para realizar la automatización de Telnet y FTP en Windows?

rashok
fuente

Respuestas:

129

En Windows, un ejecutable es una aplicación de consola o una aplicación de Windows (o una SFU o una aplicación nativa, pero eso no importa aquí).

El kernel comprueba una bandera en el ejecutable para determinar cuál.

Al comenzar a usar la CreateProcessfunción WinAPI, si se trata de una aplicación de consola, el kernel creará una ventana de consola para ella si el proceso principal no tiene una, y adjuntará los flujos STDIN, STDOUTy STDERRa la consola.

Si se trata de una aplicación de Windows, no se creará una consola y STDIN, STDOUTy STDERRse cerrará de forma predeterminada.

WSCRIPT.EXEy CSCRIPT.EXEson casi exactamente idénticos, excepto que uno está marcado como una aplicación de Windows y el otro está marcado como una aplicación de consola (¡Adivina en qué dirección!)

Entonces la respuesta es: si desea que su secuencia de comandos tenga una ventana de consola, use CSCRIPT.EXE. Si desea que NO tenga una ventana de consola, use WSCRIPT.EXE.

Esto también afecta a algunos comportamientos, como el comando WScript.Echo. En CSCRIPT.EXEesto, escribe una línea en la ventana de la consola. En WSCRIPT.EXEél se muestra un cuadro de mensaje.

Para su aplicación sugiero CSCRIPT.EXE. Creo que también deberías mirar PuTTY y PLink, y también deberías ver esto aquí:

Ben
fuente
5
@ McDonald's Solo estoy tratando de ganarme la vida. No tengo más remedio que usar Stack Overflow ya que no hay alternativa, y detesto la forma en que los propietarios siguen usando el sitio para hacer comentarios políticos sobre lo que sea que les dificulte digerir su desayuno ese mes. Así que mi nombre de usuario es mi protesta contra ese tipo de politización de cada maldita cosa .
Ben