Следующий пакетный файл поможет, по крайней мере, в Windows, которую, я надеюсь, вы используете (не повезло в DOS здесь):
@echo off
call :recurse .
goto :eof
:recurse
for /d %%d in (*) do (
pushd %%d
attrib -H .svn >nul 2>&1
ren .svn _svn >nul 2>&1
attrib +H _svn >nul 2>&1
call :recurse
popd
)
goto :eof
Проблема в том, что ren
отказывается переименовывать скрытые каталоги. И for /R
, похоже, никогда не работает при поиске каталогов. Поэтому я создаю небольшую рекурсию по дереву каталогов здесь, и для каждого вводимого каталога я удаляю скрытый флаг из папки .svn
, переименовываю его и снова скрываю файл.
Из-за повторной установки скрытого флага и for /D
никогда не возвращающих скрытых каталогов это также имеет приятное преимущество - не пытаться войти в каталоги .svn
или _svn
.