La Force d'un SCRIPT à exécuter à l'aide de cscript au lieu de wscript

Quel est le stackoverflow approuvé (et donc de corriger les) méthode pour forcer un VBS pour exécuter à l'aide de cscript au lieu de wscript - indépendamment de ce que l'utilisateur tente?

Une rapide recherche sur Google montre beaucoup d'exemples, mais certains d'entre eux n'ont tout simplement pas travailler et ceux qui ne le sont souvent de ne pas gérer le fait qu'il peut avoir été exécuté avec des arguments, donc je suis curieux de savoir quelle est la meilleure façon est.

Ici est un exemple qui ne gère pas les arguments:

sExecutable = LCase(Mid(Wscript.FullName, InstrRev(Wscript.FullName,"\")+1))
If sExecutable <> "cscript.exe" Then
  Set oShell = CreateObject("wscript.shell")
  oShell.Run "cscript.exe """ & Wscript.ScriptFullName & """"
  Wscript.Quit
End If

J'apprécie le fait que cela pourrait probablement être facilement modifié pour gérer des arguments, mais de réaliser que cela peut ne pas être la meilleure façon d'aborder le problème.

Contexte: je suis en train d'écrire un script qui permet d'exécuter en double-cliquant ou (plus probable) soit à partir d'un fichier batch DOS ou en tant que tâche planifiée. Il peut contenir un ou plusieurs facultatif arguments de ligne de commande.

Ajouter le traitement de WScript.Arguments et vous êtes fixés.
sonne comme une réponse pour moi, pas un commentaire.
Semble que vous avez répondu sur votre propre, je viens de le confirmer.
Vous avez raison, mais je me demandais si l'ensemble de la démarche de recherche à Wscript.Nom complet de cette manière était la meilleure chose à faire. Ou pour citer Perl, il n'y a plus d'une façon de le faire ... et peut-être la mienne n'est pas le meilleur?
Je ne peux pas penser à une autre façon de le faire.

OriginalL'auteur Richard | 2011-01-14

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *