web-dev-qa-db-fra.com

Différence entre wscript et cscript

Quelle est la difference entre cscript et wscript? Quelle est la meilleure solution pour automatiser Telnet et FTP sous Windows?

76
rashok

Sous Windows, un exécutable est une application console ou une application Windows (ou une application SFU ou native, mais cela n’a aucune importance ici).

Le noyau vérifie un indicateur dans l'exécutable pour déterminer lequel.

Lorsqu’il commence à utiliser la fonction CreateProcess WinAPI, s’il s’agit d’une application console, le noyau crée une fenêtre de console pour celle-ci si le processus parent n’en possède pas, et attache le fichier STDIN, STDOUT et STDERR sont transmis à la console.

S'il s'agit d'une application Windows, aucune console ne sera créée et STDIN, STDOUT et STDERR seront fermés par défaut.

WSCRIPT.EXE et CSCRIPT.EXE sont presque exactement identiques, sauf que l’une est marquée en tant qu’application Windows et l’autre en tant qu’application console (Devinez de quel côté!).

La réponse est donc la suivante: si vous voulez que votre script ait une fenêtre de console, utilisez CSCRIPT.EXE. Si vous ne voulez PAS qu’il ait une fenêtre de console, utilisez WSCRIPT.EXE.

Cela affecte également certains comportements, tels que la commande WScript.Echo. Dans un CSCRIPT.EXE ceci écrit une ligne dans la fenêtre de la console. Dans WSCRIPT.EXE il montre une boîte de message.

Je suggère pour votre application CSCRIPT.EXE. Je pense que vous devriez aussi regarder PuTTY et PLink, et vous devriez aussi voir ceci ici:

117
Ben