Windows 7 Windows批处理文件迭代器问题

Windows 7 Windows批处理文件迭代器问题,windows-7,batch-file,Windows 7,Batch File,我有3个项目,我使用svn为他们。我的文件夹系统是:有一个文件夹projects,在projects文件夹中有3个项目projectA,projectB和projectC 我有一个Windows批处理脚本代码,如下所示: d: cd projectA svn update cd ../projectB svn update cd ../projectC svn update 使用一个.bat文件的目的是更新我所有的项目。这段代码似乎可以改进。是否可以将其更改为: set folder=proj

我有3个项目,我使用svn为他们。我的文件夹系统是:有一个文件夹
projects
,在projects文件夹中有3个项目
projectA
projectB
projectC

我有一个Windows批处理脚本代码,如下所示:

d:
cd projectA
svn update
cd ../projectB
svn update
cd ../projectC
svn update
使用一个.bat文件的目的是更新我所有的项目。这段代码似乎可以改进。是否可以将其更改为:

set folder=projects
set directories=(projectA projectB projectC)
set command=svn update
d:
for %%i in %directories% do cd.. && cd %folder%/%%i && %command%
那个代码在某个地方失败了。它应该改为do while loop或类似的东西,因为它在项目文件夹下(应该在项目的上一个文件夹中执行cd项目,等等)尝试创建
cd项目\projectB

编辑:@Andriy M我的电脑上有一个截图。红色是projectA,蓝色是projectB,紫色是projectC

这里是:

是什么阻止您这样实施它:

SET folder=D:\fullpath\project
SET directories=(projectA projectB projectC)
SET command=svn update
FOR %%i IN %directories% DO (CD /D %folder%\%%i && %command%)

我将文件夹名设置为d:\projects\projectA,但它尝试执行:cd projects\projectA,而不是将d:\放在它的开头。@kamaci:不确定。顺便说一下,
文件夹
应该是您项目的父文件夹,因此您可能应该将
d:\projects
存储到其中。但这仍然不能解释为什么驱动部件会从路径上掉落。当我测试它时,它工作得很好。你确定你应用的正确吗?@kamaci-你确定你没有错过
/D
之后的
/CD
?学习如何将我的代码更改为工作状态会很好,但你的答案是可以的。谢谢安德烈。你能看到
文件夹
分配行后的错误消息吗?这就是为什么在下面的循环中有不同的路径。路径不同,因为顶部分配不起作用,
文件夹
具有您以前分配的值。您的文本编辑器可能以UTF-8编码保存了批处理文件,从屏幕截图判断,文件的前三个字节很可能是UTF-8签名。但壳牌并不承认它们是这样的,试图解释它们,但失败了。