¿Cuál es la diferencia entre cscript y wscript? ¿Cuál es mejor para realizar la automatización de Telnet y FTP en Windows?
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 CreateProcess
funció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
, STDOUT
y STDERR
a la consola.
Si se trata de una aplicación de Windows, no se creará una consola y STDIN
, STDOUT
y STDERR
se cerrará de forma predeterminada.
WSCRIPT.EXE
y CSCRIPT.EXE
son 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.EXE
esto, 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í: