![我如何循环遍历 FolderA 的所有子文件夹并执行命令检查修改的文件](https://linux22.com/image/1424989/%E6%88%91%E5%A6%82%E4%BD%95%E5%BE%AA%E7%8E%AF%E9%81%8D%E5%8E%86%20FolderA%20%E7%9A%84%E6%89%80%E6%9C%89%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%E5%B9%B6%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E6%A3%80%E6%9F%A5%E4%BF%AE%E6%94%B9%E7%9A%84%E6%96%87%E4%BB%B6.png)
我有一个 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 文件存储在相同路径上的文本文件中吗?