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

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

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

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

1 ответ1

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"

Ресурсы (требуется чтение):

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .