Windows: busca y ejecuta recursivamente archivos por lotes desde la línea de comandos

Windows: busca y ejecuta recursivamente archivos por lotes desde la línea de comandos

Tengo un proyecto con carpetas anidadas.

Quiero poder buscar directorios de forma recursiva hasta encontrar un archivo "build.bat" y ejecutarlo.

¿Cómo puedo hacer esto desde la línea de comando? (es decir, no es un archivo por lotes en sí).

Antecedentes (opcional): intentar aprovechar el compilador de vim y la configuración makeprg para ejecutar un archivo de compilación ubicado en algún lugar del proyecto y redirigir la salida a sugerencias rápidas.

Respuesta1

Supongamos que la carpeta raíz de un proyecto en particular es d:\Remotesu directorio de trabajo actual. Luego (copiado y pegado desde mi ventana del símbolo del sistema):

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

Entonces simplemente podrías eliminar @echo...

Si está en otro directorio de trabajo:

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

Notase podría encontrar más de un archivo; Si @echose eliminan, se ejecutarán todos los encontrados:

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"

Recursos(lectura obligatoria):

información relacionada