我如何重命名DOS下当前目录下的所有隐藏目录?

我如何重命名DOS下当前目录下的所有隐藏目录? 我刚刚更新了龟SVN使用_svn而不是.svn。 我注意到,如果我只是重命名文件夹,它仍然有效。

下面的批处理文件将会做到这一点,至少在我希望你使用的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目录的好处。

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

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