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 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: