1 votes

Windows : recherche récursive et exécution d'un fichier batch à partir de la ligne de commande

J'ai un projet avec des dossiers imbriqués.

Je veux pouvoir rechercher récursivement dans les répertoires jusqu'à ce qu'un fichier "build.bat" soit trouvé, et l'exécuter.

Comment puis-je faire cela à partir de la ligne de commande ? (c'est-à-dire pas un fichier batch lui-même).

Contexte (facultatif) : J'essaie d'exploiter les paramètres de compilateur et de makeprg de vim pour exécuter un fichier de construction situé quelque part dans le projet, et rediriger la sortie vers les quicktips.

2voto

JosefZ Points 11907

Supposons qu'un dossier racine de projet particulier soit d:\Remote et c'est votre répertoire de travail actuel. Ensuite (copié & collé depuis ma fenêtre d'invite de commande) :

d:\Remote>for /F "delims=" %G in ('dir /b /s build.bat') do @echo "%~G"
"d:\Remote\bat\test\build.bat"

Vous pouvez alors simplement supprimer @echo ...

Si vous êtes dans un autre répertoire de travail :

d:\bat>for /F "delims=" %G in ('dir /b /s "d:\Remote\build.bat"') do @echo "%~G"
"d:\Remote\bat\test\build.bat"

Note il pourrait y avoir plus d'un fichier ; si @echo retirés puis tous ceux qui ont été trouvés seront exécutés :

d:\Remote>for /F "delims=" %G in ('dir /b /s cdn.bat') do @echo "%~G"
"d:\Remote\bat\cdn.bat"
"d:\Remote\bat\test\cdn.bat"

Ressources (lecture obligatoire) :

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X