我如何循环遍历 FolderA 的所有子文件夹并执行命令检查修改的文件

我如何循环遍历 FolderA 的所有子文件夹并执行命令检查修改的文件

我有一个 cvs 客户端,通过它我可以获得目录中已修改文件的列表。例如:

My workspace(Top folder) -" D/MyWorkspace"

My Project A(Sub Folder) - D/MyWorkspcace/AProject

同一文件夹中还有其他项目,如 D/MyWorkspcace/BProject、D/MyWorkspcace/CProject 等等。

我目前正在做的是打开命令提示符,使用 cvs login 命令,它会提示我输入密码并登录。我逐个进入每个目录并使用类似命令

"D:\MyWorkspcace\AProject> cvs -q diff --brief c"(在命令提示符中)

它将向我提供当前目录中已修改文件的列表。

我对我的 5 个项目重复此操作以获取所有项目中修改文件的列表。

有没有办法创建一个.bat文件,循环遍历 MyWorkspcace 中所有不以“。”开头的子文件夹,并对每个子文件夹执行上述命令?

答案1

尝试这样的操作:

Setlocal EnableDelayedExpansion

for /d /r %%d in (*.*) do (
    set folder=%%~nxd
    set first=!folder:~0,1!
    if not !first! == . (
        pushd "%%d"
        cvs -q diff --brief c
        popd
    )
)

答案2

@Berend 谢谢兄弟,它成功了

cvs -d:pserver:CSCHOSTING\ytyagi2@blahblah-pd-deploy2:/blahblah/repository login Setlocal EnableDelayedExpansion for /d /r %%d in ()执行(设置文件夹=%%~nxd 设置第一个=!文件夹:~0,1!如果不是!第一个!==。(pushd“%%d”cvs-q diff--brief popd))

刚开始只是使用了 login 命令,它会提示输入密码,并删除了 popd 之前的“c”。我对此了解不多,所以不能说。但是它确实运行良好。我可以将输出记录到与 .bat 文件存储在相同路径上的文本文件中吗?

相关内容