代码之家  ›  专栏  ›  技术社区  ›  sean

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

  •  2
  • sean  · 技术社区  · 16 年前

    如何重命名DOS中当前目录下的所有隐藏目录?我刚刚更新了Tortoise SVN,用SVN代替.SVN。我注意到,如果只重命名文件夹,它仍然有效。

    2 回复  |  直到 13 年前
        1
  •  11
  •   Community CDub    13 年前

    下面的批处理文件将起到一定的作用,至少在我希望您使用的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 目录。

        2
  •  0
  •   mikesl    13 年前

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

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