Comment appeler un script VbScript à partir d’un fichier batch sans ouvrir une invite de commande supplémentaire

J’ai un fichier VBScript que j’essaie d’appeler à partir d’un fichier batch. Le code suivant, j’ai copié à un bloc-notes et enregistré en tant que MyScript.vbs

(http://gallery.technet.microsoft.com/scriptcenter/8bbed56f-a7aa-491f-a296-687dd96098a3#content)

Const HIDDEN_WINDOW = 12 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objStartup = objWMIService.Get("Win32_ProcessStartup") Set objConfig = objStartup.SpawnInstance_ objConfig.ShowWindow = HIDDEN_WINDOW Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process") errReturn = objProcess.Create("Notepad.exe", null, objConfig, intProcessID) 

Création d’un fichier de commandes nommé Run.bat et ajout du code ci-dessous.

  @echo off start "C:\\Users\\guest\\Desktop\\123\\MyScript.vbs" 

Lorsque j’essaie d’exécuter le fichier de commandes via l’invite de commandes, ce qui ouvre une autre invite de commandes.

 rem This is the command line version cscript "C:\Users\guest\Desktop\123\MyScript.vbs" 

OU

 rem This is the windowed version wscript "C:\Users\guest\Desktop\123\MyScript.vbs" 

Vous pouvez également append l’option //e:vbscript pour vous assurer que le moteur de script reconnaîtra votre script en tant que vbscript.

Les fichiers de commandes Windows / DOS ne nécessitent pas d’échapper \ like * nix.

Vous pouvez toujours utiliser "C:\Users\guest\Desktop\123\MyScript.vbs" , mais cela nécessite que l’utilisateur ait associé *.vbs à wscript .

Si vous voulez corriger le type d’associations vbs

 regsvr32 vbscript.dll regsvr32 jscript.dll regsvr32 wshext.dll regsvr32 wshom.ocx regsvr32 wshcon.dll regsvr32 scrrun.dll 

Aussi, si vous ne pouvez pas utiliser vbs en raison de la gestion, convertissez votre script en un programme vb.net qui est conçu pour être facile, facile et prend 5 minutes.

La grande différence réside dans les fonctions et les sous-systèmes sont tous deux appelés par des parenthèses plutôt que par de simples fonctions.

Les compilateurs sont donc installés sur tous les ordinateurs sur lesquels .NET est installé.

Consultez cet article ici pour savoir comment créer un fichier .NET. Notez que l’exemple est destiné à un hôte de script. Vous ne pouvez pas utiliser cela, vous devez mettre votre code vbs en code .NET.

Comment puis-je convertir un script VBScript en fichier exécutable (EXE)?