2009-06-25 11 views

答えて

11

次のバッチファイルには、少なくとも私はあなたが(ここではDOSで運を)使用していない願ってWindows上で、トリックを行います:

@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ディレクトリを入力しないと便利です。

0

膨大な数のディレクトリがあり、再帰が失敗したため、これは私にとってはうまくいきました。

FOR /R %%f IN (_svn) DO IF EXIST "%%f" (
    ATTRIB -h "%%f" 
    RENAME "%%f" .svn 
    ATTRIB +h "%%f" 
) 
関連する問題