Для удаления всех ".svn" файлов/папок/подпапок в "myfolder", я использую эту простую строку в пакетном файле:
FOR /R myfolder %%X IN (.svn) DO (RD /S /Q "%%X")
Это работает, но при отсутствии ".svn" файлов/папок, которые пакетный файл показывает высказыванию предупреждения: "Система не может найти файл указанным". Это предупреждение является очень шумным, таким образом, я задавался вопросом, как заставить его понять, что, если оно не находит ".svn" файлов/папок, он должен пропустить команду RD.
Обычно использование подстановочных знаков было бы достаточно, но в этом случае я не знаю, как использовать их, потому что я не хочу удалять файлы/папки с .svn расширением, но я хочу удалить файлы/папки, названные точно ".svn", поэтому если я делаю это:
FOR /R myfolder %%X IN (*.svn) DO (RD /S /Q "%%X")
это НЕ удалило бы файлы/папки, названные точно ".svn" больше. Я попробовал также это:
FOR /R myfolder %%X IN (.sv*) DO (RD /S /Q "%%X")
но это не работает также, он ничего не удаляет.
попробуйте
FOR /R myfolder %%X IN (.svn) DO (RD /S /Q "%%X" 2>nul)
Что-то вроде того, используя find:
rm -rf `find . -name ".svn" -type d`
Edit:
Я знаю, что это для linux (я читаю bash вместо пакета). Я оставляю его здесь, чтобы помочь пользователям Linux, которые случайно окажутся здесь:)