У меня есть папка проекта с большим количеством проектов внутри. Существует ли способ, которым я могу создать bat-файл, который входит в каждую из этих папок проекта и выполняет несколько команд?
То, что я хотел бы, должно автоматизировать то, что я теперь сделал бы вручную:
> cd dir1
> command1 arg1 arg2
> command2 arg1 arg2
> cd ..
> cd dir2
> ...
Действительно ли это возможно автоматизировать с bat-файлом?
Попробованный для использования то, что я нашел в потоке форума. Кажется, работает?
pushd C:\projects
for /f "Delims=" %%i in ('dir /ad /b') do (
cd "%%i"
command1 arg1 arg2
command2 arg1 arg2
cd ..
)
popd
Не уверенный я добираюсь /f "Delims=
часть, например, хотя... Я также хотел бы исключить некоторые каталоги. Прокомментируйте, знаете ли Вы как :)
Можно использовать все команды из командной строки в Bat-файле, таким образом, я не уверен, каков вопрос.
Просто запишите Bat-файл как это:
cd dir1
command1 arg1 arg2
command2 arg1 arg2
cd ..
cd dir2
Если у Вас есть много каталогов, и команды всегда являются тем же, помещают их во второй сценарий BAT и используют a for
цикл:
for %%a IN ('dir /b %PROJECT_FOLDER%') do call second_script.bat %%a
Проверьте справку на dir
если у Вас есть файлы и каталоги в %PROJECT_FOLDER%
. Должна быть опция перечислить только каталоги.
pushd C:\projects
:: your 'for /f' was correct, but unnecessary
for /d %%i in (*) do call :foo "%%~i"
popd
goto :eof
:foo
if "%~1"=="junk" goto :eof
if "%~1"=="unneeded directory" goto :eof
pushd "%~1"
command1
command2
popd
goto :eof
С другой стороны, если Вы только хотите включать несколько определенных каталогов:
for /d %%i in (a b c) do ...