Windows: procure e execute recursivamente o arquivo em lote na linha de comando

Windows: procure e execute recursivamente o arquivo em lote na linha de comando

Eu tenho um projeto com pastas aninhadas.

Quero poder procurar diretórios recursivamente até que um arquivo "build.bat" seja encontrado e executá-lo.

Como posso fazer isso na linha de comando? (ou seja, não é um arquivo em lote).

Plano de fundo (opcional): Tentando aproveitar as configurações do compilador e makeprg do vim para executar um arquivo de compilação localizado em algum lugar do projeto e redirecionar a saída para dicas rápidas.

Responder1

Suponha que uma pasta raiz de projeto específica d:\Remoteseja seu diretório de trabalho atual. Então (copiado e colado da minha janela do 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ê poderia 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"

Observaçãopode ser encontrado mais de um arquivo; se @echoremovido, 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):

informação relacionada