Windows: рекурсивный поиск и выполнение пакетного файла из командной строки

Windows: рекурсивный поиск и выполнение пакетного файла из командной строки

У меня есть проект с вложенными папками.

Я хочу иметь возможность рекурсивно просматривать каталоги, пока не будет найден файл «build.bat», и выполнить его.

Как это сделать из командной строки? (т.е. не из самого пакетного файла).

Предыстория (необязательно): попытка использовать компилятор vim и настройки makeprg для запуска файла сборки, расположенного где-то в проекте, и перенаправления вывода в быстрые подсказки.

решение1

Предположим, что корневая папка конкретного проекта — это d:\Remoteи это ваш текущий рабочий каталог. Тогда (скопировано и вставлено из моего окна командной строки):

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

Тогда вы могли бы просто удалить @echo...

Если вы находитесь в другом рабочем каталоге:

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

Примечаниеможет быть найдено более одного файла; если @echoудалить, то все найденные пойдут на выполнение:

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"

Ресурсы(обязательно к прочтению):

Связанный контент