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:\Remote
seja 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 @echo
removido, 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):
- (referência de comando)Um índice AZ da linha de comando do Windows CMD
- (particularidades adicionais)Sintaxe de linha de comando do shell CMD do Windows
- (
%~G
etc. página especial)Argumentos de linha de comando (parâmetros)