2011-12-30 21 views
66

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

+2

posible duplicado de [VBS cscript.exe wscript.exe] (http: // stackoverflow. com/questions/5788303/vbs-cscript-exe-wscript-exe) – McDowell

Respuesta

105

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

El kernel comprueba un indicador en el ejecutable para determinar cuál.

Al iniciar el uso de CreateProcess función de API de Windows, si se trata de una aplicación de consola, el kernel creará una ventana de consola para que si el proceso padre no tiene uno, y adjuntar los STDIN, STDOUT y STDERR corrientes a la consola.

Si se trata de una aplicación de Windows, no se creará consola y STDIN, STDOUT y STDERR se cerrarán 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 qué camino tomar!).

Así que la respuesta es: Si desea que el script tiene una ventana de consola, utilice 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 un CSCRIPT.EXE esto escribe una línea en la ventana de la consola. En WSCRIPT.EXE, muestra un cuadro de mensaje.

Para su aplicación, propongo CSCRIPT.EXE. Creo que también debe mirar a la masilla y Plink, y también se debería ver esto aquí:

+3

@ McDonald's Solo estoy tratando de ganarme la vida. No tengo otra opción que usar Stack Overflow ya que no hay alternativa, y detesto la forma en que los propietarios siguen usando el sitio para hacer puntos políticos sobre lo que hace difícil digerir su desayuno ese mes. Entonces mi nombre de usuario es mi protesta contra ese tipo de politización de * cada maldita cosa *. – Ben