Qual è la differenza tra cscript e wscript? Qual è il migliore per eseguire l'automazione di Telnet e FTP in Windows?
Risposte:
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 CreateProcess
la 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
, STDOUT
e STDERR
ruscelli alla console.
Se si tratta di un'applicazione Windows, nessuna console verrà creato e STDIN
, STDOUT
e STDERR
sarà chiuso per impostazione predefinita.
WSCRIPT.EXE
e CSCRIPT.EXE
sono 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.EXE
questo scrive una riga nella finestra della console. In WSCRIPT.EXE
esso 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: