2009-06-25 62 views

回答

11

下面的批处理文件就可以了,至少在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拒绝重命名隐藏的目录。当试图找到目录时,看起来从未真正起作用。所以我在这里通过目录树建立一个小递归,并为我输入的每个目录清除.svn文件夹中的隐藏标志,重命名它,并再次隐藏文件。

由于重新设置隐藏标志和for /D再也不会回到隐藏目录,这也并没有试图进入.svn_svn目录的好的效益。

0

这对我来说更好,因为我有大量的目录和递归失败。

FOR /R %%f IN (_svn) DO IF EXIST "%%f" (
    ATTRIB -h "%%f" 
    RENAME "%%f" .svn 
    ATTRIB +h "%%f" 
)