Рекурсивно удалять папки, соответствующие "* folder1 \ folder2" - PullRequest
2 голосов
/ 27 мая 2011

Я пытаюсь удалить все папки .svn, ТОЛЬКО если они находятся в папке CVS.Шаблон должен выглядеть примерно так: "* CVS \ .svn".

Однако мои попытки написать пакетный скрипт на данный момент не работают.Вот то, что я имею до сих пор, хотя это не работает.

FOR /D /R %%X IN (*CVS\.svn) DO RD /S /Q "%%X"

или

FOR /R CVS %%X IN (.svn) DO (RD /S /Q "%%X")

1 Ответ

2 голосов
/ 27 мая 2011

Это работает, если вы начинаете на один уровень выше, чем каталог "CVS" (в противном случае это немного сложнее):

for /f %d in ('dir /a:d /b /s CVS') do (
  if exist "%d\.svn\." rd /s /q "%d\.svn"
)

Первая строка рекурсивно находит все каталоги с именем "CVS", затемсекунда удаляет подкаталог ".svn", если он существует.Если вы запускаете его из пакетного сценария / сценария оболочки, используйте %%d вместо %d.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...