Questão Windows: busca recursivamente e executa o arquivo em lote a partir da linha de comando


Eu tenho um projeto com pastas aninhadas.

Eu quero ser capaz de procurar diretórios recursivamente até que um arquivo "build.bat" seja encontrado e executá-lo.

Como posso fazer isso a partir da linha de comando? (isto é, não é um arquivo em lote).

Background (Opcional): Tentando aproveitar as definições do compilador e do makeprg do vim para executar um arquivo de construção localizado em algum lugar no projeto e redirecionar a saída para dicas rápidas.


0


origem




Respostas:


Suponha que uma determinada pasta raiz do projeto seja d:\Remote e é o seu diretório de trabalho atual. Então (copiado e colado da minha janela de prompt de comando):

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

Então você pode simplesmente remover @echo...

Se você estiver em outro diretório de trabalho:

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

Nota pode ser encontrado mais de um arquivo; E se @echo removido então todos os encontrados serão executados:

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 (leitura obrigatória):


1