Запретить команде «del / s» входить в папку - PullRequest
4 голосов
/ 09 июня 2010

Мне нужно рекурсивно удалить ненужные файлы из репозитория SVN, и у меня есть следующий пакетный файл для этого:

@echo on
del /s ~*.*
del /s *.~*
del /s Thumbs.db

Однако это также приводит к удалению записей в подпапках .svn /. Есть ли способ предотвратить выполнение этих команд в папках .svn /, чтобы они не мешали?

Заранее спасибо!

РЕДАКТИРОВАТЬ: Решение с использованием Bash (Cygwin) также будет работать для меня, так как мне нужно сделать это один раз.

Ответы [ 2 ]

2 голосов
/ 09 июня 2010
del ~*.*
del *.~*
del Thumbs.db
for /d %%a in (*) do (
    if not "%%a" == ".svn" (
      cd %%a
      del /s ~*.*
      del /s *.~*
      del /s Thumbs.db
      cd ..
    )
)
1 голос
/ 09 июня 2010

Не знаю, как это сделать в командном файле, но решение для bash просто:

find . -name .svn -prune -o -print | egrep "/~.*|/[^/].*\.~.*$|/Thumbs.db" | xargs rm -f

Хотя я рекомендую сначала перенаправить файл, а затем просмотреть файлы.

Первая команда находит все, что не находится в поддиректории .svn. Вторая команда выбирает те вещи, которые вы хотите удалить, а третий удаляет их.

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