J'ai un fichier VBScript que j'essaie d'appeler à partir d'un fichier batch. Le code suivant que j'ai copié dans 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 à l'aide de l'invite de commande, ce qui ouvre une autre invite de commande.
rem This is the command line version
cscript "C:\Users\guest\Desktop\123\MyScript.vbs"
OR
rem This is the windowed version
wscript "C:\Users\guest\Desktop\123\MyScript.vbs"
Vous pouvez également ajouter 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 l'échappement de \
comme * nix.
Vous pouvez toujours utiliser "C:\Users\guest\Desktop\123\MyScript.vbs"
, mais cela nécessite que l'utilisateur ait *.vbs
associé à wscript
.
Si vous voulez réparer le type d'associations vbs
regsvr32 vbscript.dll
regsvr32 jscript.dll
regsvr32 wshext.dll
regsvr32 wshom.ocx
regsvr32 wshcon.dll
regsvr32 scrrun.dll
De plus, si vous ne pouvez pas utiliser vbs pour des raisons de gestion, convertissez votre script en un programme vb.net conçu pour être simple, facile et prenant 5 minutes.
La grande différence réside dans les fonctions et les sous-utilisateurs sont appelés à l'aide de crochets plutôt que de fonctions.
Les compilateurs sont donc installés sur tous les ordinateurs sur lesquels .NET est installé.
Voir cet article ici sur la façon de créer un fichier .NET. Notez que l'exemple est destiné à un hôte de script. Vous ne pouvez pas utiliser ceci, vous devez mettre votre code vbs en tant que code .NET.