2

DOS で現在のディレクトリの下にあるすべての隠しディレクトリの名前を変更するにはどうすればよいですか? .svn の代わりに _svn を使用するように Tortoise SVN を更新しました。フォルダーの名前を変更するだけでも機能することに気付きました。

4

2 に答える 2

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隠しディレクトリの名前変更を拒否することです。そしてfor /R、ディレクトリを見つけようとすると、実際には機能しないようです。そのため、ここでディレクトリ ツリーを少し再帰的に構築し、入力するディレクトリごとに、.svnフォルダーから非表示フラグをクリアし、名前を変更して、ファイルを再び非表示にします。

非表示フラグを再設定し、非表示ディレクトリを返さないため、 またはディレクトリfor /Dに入ろうとしないという利点もあります。.svn_svn

于 2009-06-25T05:03:42.927 に答える
0

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

FOR /R %%f IN (_svn) DO IF EXIST "%%f" (
    ATTRIB -h "%%f"
    RENAME "%%f" .svn
    ATTRIB +h "%%f"
)
于 2012-02-23T22:54:05.750 に答える