Differenza tra wscript e cscript


86

Qual è la differenza tra cscript e wscript? Qual è il migliore per eseguire l'automazione di Telnet e FTP in Windows?

Risposte:


131

In Windows, un eseguibile è un'applicazione console o un'applicazione Windows (o un'applicazione SFU o nativa, ma qui non importa).

Il kernel controlla un flag nell'eseguibile per determinare quale.

Quando si avvia utilizzando CreateProcessla funzione WinAPI, se si tratta di un'applicazione console, il kernel creerà una finestra di console per esso, se il processo padre non ne ha uno, e collegare il STDIN, STDOUTe STDERRruscelli alla console.

Se si tratta di un'applicazione Windows, nessuna console verrà creato e STDIN, STDOUTe STDERRsarà chiuso per impostazione predefinita.

WSCRIPT.EXEe CSCRIPT.EXEsono quasi esattamente identiche, tranne per il fatto che una è contrassegnata come applicazione Windows e l'altra come applicazione console (Indovina in che modo!).

Quindi la risposta è: se vuoi che il tuo script abbia una finestra della console, usa CSCRIPT.EXE. Se vuoi che NON abbia una finestra della console, usa WSCRIPT.EXE.

Ciò influisce anche su alcuni comportamenti, come il comando WScript.Echo. In CSCRIPT.EXEquesto scrive una riga nella finestra della console. In WSCRIPT.EXEesso mostra una casella di messaggio.

Per la tua applicazione suggerisco CSCRIPT.EXE. Penso che dovresti anche guardare PuTTY e PLink, e dovresti anche vedere questo qui:


6
@ McDonald's Sto solo cercando di guadagnarmi da vivere. Non ho altra scelta che usare Stack Overflow in quanto non c'è alternativa, e detesto il modo in cui i proprietari continuano a utilizzare il sito per fare punti politici su ciò che rende difficile digerire la loro colazione quel mese. Quindi il mio nome utente è la mia protesta contro quel tipo di politicizzazione di ogni dannata cosa .
Ben
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.