web-dev-qa-db-fra.com

Exécution de vbscript à partir d'un fichier de commandes

J'ai juste besoin d'écrire un fichier batch simple pour exécuter un script vbscript. Vbscript et le fichier de commandes se trouvent dans le même dossier et dans le répertoire SysWOW64, car vbscript ne peut être exécuté que dans ce répertoire. Actuellement, mon fichier batch est le suivant:

@echo off
%WINDIR%\SysWOW64\cmd.exe
cscript necdaily.vbs

Mais vbscript n'a pas été exécuté et seule l'invite de commande est ouverte. Quelqu'un peut-il me dire comment puis-je exécuter le vbscript quand je lance ce fichier de commandes? Merci.

24
user918197

Vous pouvez utiliser %~dp0 pour obtenir le chemin du fichier batch en cours d’exécution.

Edité pour changer de répertoire à l'emplacement de VBS avant de l'exécuter

Si vous voulez que VBS s'exécute de manière synchrone dans la même fenêtre, alors

@echo off
pushd %~dp0
cscript necdaily.vbs

Si vous voulez que VBS s'exécute de manière synchrone dans une nouvelle fenêtre, alors

@echo off
pushd %~dp0
start /wait "" cmd /c cscript necdaily.vbs

Si vous voulez que VBS s'exécute de manière asynchrone dans la même fenêtre, alors

@echo off
pushd %~dp0
start /b "" cscript necdaily.vbs

Si vous voulez que VBS s'exécute de manière asynchrone dans une nouvelle fenêtre, alors

@echo off
pushd %~dp0
start "" cmd /c cscript necdaily.vbs
40
dbenham

C'est la commande pour le fichier de commandes et il peut exécuter le script vbscript.

C:\Windows\SysWOW64\cmd.exe /c cscript C:\Windows\SysWOW64\...\necdaily.vbs
8
user918197

Les fichiers batch sont traités ligne par ligne et se terminent chaque fois que vous appelez directement un exécutable.
- Pour que le fichier de commandes attende la fin du processus et continue, mettez call devant lui.
- Pour que le fichier de commandes continue sans attendre, mettez start "" devant lui.

Je vous recommande d'utiliser ce script d'une seule ligne pour atteindre votre objectif:

@call cscript "% ~ dp0necdaily.vbs"

(puisqu'il s'agit d'une seule ligne, vous pouvez utiliser @ au lieu de @echo off)

Si vous pensez que votre script ne peut être appelé qu'à partir des versions SysWOW64 de cmd.exe, vous pouvez essayer:

@% WINDIR%\SysWOW64\cmd.exe/c appelez le cscript "% ~ dp0necdaily.vbs"

Si vous avez besoin de la fenêtre pour rester, vous pouvez remplacer/c avec/k

5
Nico van der Stok

Eh bien, j'essaie d'ouvrir un fichier .vbs dans un fichier de commandes sans avoir à cliquer sur Ouvrir, mais la réponse à cette question est ...

SET APPDATA =% CD%

démarrer (votre fichier ici sans les crochets avec un .vbs s'il s'agit d'un fichier vbd)

j'espère que ça t'as aidé :)

Essayez juste ce code:

démarrer "" "C:\Utilisateurs\DiPesh\Bureau\vbscript\welcome.vbs"

et enregistrer en tant que .bat, cela fonctionne pour moi

1
DIpesh