Comment appeler un autre script batch depuis un script batch? Je veux qu'il s'exécute dans une déclaration if
.
Réponses
Trop de publicités? Utilisez CALL
comme dans
CALL nameOfOtherFile.bat
Ceci bloquera (mettra en pause) l'exécution du fichier de commandes actuel et attendra que le fichier CALL
ed soit terminé.
Si vous ne souhaitez pas le bloquer, utilisez plutôt START
.
Obtenez les détails essentiels en utilisant CALL /?
ou START /?
partir de l'invite cmd.
Vous pouvez simplement appeler le script de commandes par nom, comme si vous êtes en cours d'exécution sur la ligne de commande.
Donc, supposons que vous avez un fichier bar.bat
que dit - echo This is bar.bat!
et que vous voulez l'appeler à partir d'un fichier foo.bat
, vous pouvez écrire ceci en foo.bat
:
if "%1"=="blah" bar
Exécutez foo blah
à partir de la ligne de commande, et vous verrez:
C:\>foo blah
C:\>if "blah" == "blah" bar
C:\>echo This is bar.bat!
This is bar.bat!
Mais attention: Lorsque vous appelez un script batch à partir d'un autre script de traitement par lot, du lot initial script s'arrête en cours d'exécution. Si vous souhaitez exécuter le secondaire script batch et puis retour à l'ancien script de commandes, vous devrez utiliser l' call
commande. Par exemple:
if "%1"=="blah" call bar
echo That's all for foo.bat!
Si vous exécutez foo blah
sur qui, vous le voyez:
C:\>foo blah
C:\>if "blah" == "blah" call bar
C:\>echo This is bar.bat!
This is bar.bat!
C:\>echo That's all for foo.bat!
That's all for foo.bat!