Comment appeler un autre script batch à partir d'un script batch?
Je veux qu'il s'exécute dans une if
instruction.
Comment appeler un autre script batch à partir d'un script batch?
Je veux qu'il s'exécute dans une if
instruction.
Utiliser CALL
comme dans
CALL nameOfOtherFile.bat
Cela bloquera (interrompra) l'exécution du fichier de commandes en cours et attendra la fin de l' CALL
ed.
Si vous ne voulez pas qu'il se bloque, utilisez à la START
place.
Obtenez les détails les plus précis en utilisant CALL /?
ou à START /?
partir de l'invite cmd.
Vous pouvez simplement appeler le script batch par son nom, comme si vous exécutiez sur la ligne de commande.
Donc, supposons que vous ayez un fichier bar.bat
qui dit echo This is bar.bat!
et que vous vouliez l'appeler à partir d'un fichier foo.bat
, vous pouvez l'écrire dans 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 batch, le script batch d'origine s'arrêtera de s'exécuter. Si vous souhaitez exécuter le script de traitement par lots secondaire, puis revenir au script de traitement par lots précédent, vous devrez utiliser la call
commande. Par exemple:
if "%1"=="blah" call bar
echo That's all for foo.bat!
Si vous exécutez foo blah
sur cela, vous verrez:
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!
Vous devriez utiliser CALL
CALL batch.bat
call
, il continuera son exécution même avec une erreur dans le script appelé.Voici un exemple:
Vous avez un.bat:
et b.bat appelé conditionnellement depuis a.bat:
la source
Si vous souhaitez ouvrir le fichier de commandes dans une autre fenêtre, utilisez
start
. De cette façon, vous pouvez essentiellement exécuter deux scripts en même temps. En d'autres termes, vous n'avez pas à attendre la fin du script que vous venez d'appeler. Tous les exemples ci-dessous fonctionnent:Si vous voulez attendre la fin du script, essayez
start /w call batch.bat
, mais le batch.bat doit se terminer parexit
.la source
Exécuter parallèlement sur des fenêtres de commande séparées dans un état réduit
dayStart.bat
Exécuter séquentiellement sur la même fenêtre
release.bat
la source
hein, je ne sais pas pourquoi, mais l'appel n'a pas fait l'affaire
call script.bat
n'est pas revenu à la console d'origine.cmd /k script.bat
est revenu à la console d'origine.la source