web-dev-qa-db-fra.com

Comment exécuter plusieurs fichiers de commandes avec un seul fichier de commandes maître

J'ai trois fichiers chauve-souris que j'aimerais lancer, dans trois répertoires différents:

répertoire/bat1/bat1.bat

répertoire/bat2/bat2.bat

répertoire/bat3/bat3.bat

Je voudrais utiliser un maître .bat pour démarrer tous les autres chauves-souris dans leurs répertoires. Je ne peux pas utiliser call car des erreurs se produisent car il existe des dépendances pour chaque baton différent du répertoire. J'ai essayé d'utiliser start, mais cela ne fonctionne pas non plus. Il suffit d'appeler une commande avec l'invite du dossier.

Je sais que cela semble un peu déroutant, mais tout ce que je veux, c’est utiliser un seul fichier .bat pour exécuter plusieurs fichiers .bat indépendants les uns des autres dans leurs propres répertoires.

6
JCTechie

J'ai trouvé une solution! J'ai utilisé ce code pour que la chauve-souris puisse ouvrir indépendamment les trois fichiers de chauve-souris:

cd "\directory\bat1\"
start bat1.bat
cd "\directory\bat2\"
start bat2.bat
cd "\directory\bat3\"
start bat3.bat
6
JCTechie

Si vous utilisez start , les autres fichiers bat vont créer un nouveau processus pour chaque bat, et les exécuter tous en même temps.

cd "\directory\bat1\"
start bat1.bat
cd "\directory\bat2\"
start bat2.bat
cd "\directory\bat3\"
start bat3.bat

Mais si vous voulez lancer le prochain après le dernier, vous pouvez utiliser call

cd "\directory\bat1\"
call bat1.bat
cd "\directory\bat2\"
call bat2.bat
cd "\directory\bat3\"
call bat3.bat

n'oubliez pas le premier\au début du cd , sinon il essaiera de changer le répertoire en un sous-répertoire du répertoire de travail en cours.

9
Krul

J'ai donc lutté avec ce problème et aucune de ces solutions ni d'autres ne fonctionnaient. Ce que je voulais faire dans un fichier batch "maître", c'était d'accéder aux sous-dossiers et d'exécuter les fichiers batch dans ces dossiers de manière séquentielle. C'est ce que j'ai finalement fini par faire,

cd Folder1
call batch_cmd.bat
cd ..
cd Folder2
call batch_cmd.bat
cd ..

etc. etc. etc.

Ce format a bien fonctionné pour moi puisque j'utilisais javascript/nodejs pour générer ces commandes et fichiers de commandes.

Si vous voulez faire entièrement quelque chose dans des fichiers de commandes, je vous conseillerais plutôt de rechercher des scripts PowerShell.

1
tehduder9

Pour moi - cela a fonctionné comme

ECHO Exécuter un fichier batch.
:: Le chemin ci-dessous est un chemin sans guillemets, mais se termine par "\".
cd chemin-vers-le-fichier1
:: Ci-dessous le nom de fichier du lot sans les guillemets.
appel batch-filename1

:: Below est un chemin sans guillemets mais se termine par "\".
cd chemin-vers-le-fichier2
:: Ci-dessous le nom de fichier du lot sans les guillemets.
appel batch-filename2

0
Varinder Sandhu