我有一个 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 文件存储在相同路径上的文本文件中吗?