Проблема с итератором пакетных файлов Windows - PullRequest
0 голосов
/ 22 февраля 2011

У меня есть 3 проекта, которые я использую для них svn.Моя система папок такова: есть папка projects, в папке проектов есть 3 проекта projectA, projectB и projectC.

У меня есть код пакетного сценария Windows, подобный этому:

d:
cd projectA
svn update
cd ../projectB
svn update
cd ../projectC
svn update

Цель этого - один файл .bat. Я хочу обновить все свои проекты.Кажется, этот код можно улучшить.Можно ли изменить его следующим образом:

set folder=projects
set directories=(projectA projectB projectC)
set command=svn update
d:
for %%i in %directories% do cd.. && cd %folder%/%%i && %command%

Этот код где-то не работает.Следует изменить, чтобы сделать цикл while или что-то в этом роде, потому что он пытается сделать cd projects\projectB, пока он находится в папке проектов (он должен находиться в верхней папке проектов для выполнения проектов cd \ etc.)

РЕДАКТИРОВАТЬ: @ Андрей М Есть скриншот с моего компьютера.Красный - это проект А, синий - это проект В, а фиолетовый - это проект С.

Вот оно: screenshot

1 Ответ

0 голосов
/ 22 февраля 2011

Что мешает вам реализовать это так:

SET folder=D:\fullpath\project
SET directories=(projectA projectB projectC)
SET command=svn update
FOR %%i IN %directories% DO (CD /D %folder%\%%i && %command%)

...