加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 在每个子文件夹中运行命令

发布时间:2020-12-14 02:08:42 所属栏目:Windows 来源:网络整理
导读:在路径的每个子文件夹中运行命令的最简单方法是什么?在这种情况下,我必须为我的存储库中的每个目录运行svn cleanup. 解决方法 我发现在这种情况下,删除工作副本和重新检出更容易.如果您有本地更改,请先将更改的文件复制到其他位置. 但是Can’s answer可能适
在路径的每个子文件夹中运行命令的最简单方法是什么?在这种情况下,我必须为我的存储库中的每个目录运行svn cleanup.

解决方法

我发现在这种情况下,删除工作副本和重新检出更容易.如果您有本地更改,请先将更改的文件复制到其他位置.

但是Can’s answer可能适用于你的情况,除非SVN有更大的问题.虽然你可能需要多次运行它,因为它会从仍然有问题的根文件夹开始,然后.在这种情况下,您需要进行某种后序遍历,这对于/ r无法完成,但可以确保您从层次结构中的最低目录开始清理.

您还需要排除SVN的状态目录.svn:

for /r /d %i in (*) do if NOT %i==.svn svn cleanup %i

至于后期遍历,您可以构建一个小批量:

@echo off
call :recurse "."
goto :eof

:recurse
pushd %1
if not %~1==.svn (
    for /d %%i in (*) do call :recurse "%%i"
    echo svn cleanup %~1
)
popd
goto :eof

在以下树上:

a
├───.svn
├───a1
│   └───.svn
└───a2
    └───.svn
b
├───.svn
├───b1
│   ├───.svn
│   ├───b11
│   │   └───.svn
│   └───b12
│       └───.svn
└───b2

这会产生以下输出:

svn cleanup "a1"
svn cleanup "a2"
svn cleanup "a"
svn cleanup "b11"
svn cleanup "b12"
svn cleanup "b1"
svn cleanup "b2"
svn cleanup "b"
svn cleanup "."

正如您所看到的,确保首先处理最低目录并跳过.svn目录.如果要使用它,请删除回声.这可以解决您的问题.也许.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读