脚本中的 RoboCopy 不起作用

RoboCopy in script is not working

我下面的脚本非常简单,但我无法使 robocopy 工作。

@echo off & setlocal

set remotePath=E:\RemotePath\
set s=001 002 003

set path=Y:\P25_Ladybug\RENDER\Comp\LB003\Sc001\

for %%a in (%s%) DO (

        robocopy "%path%%%a%" "%remotePath%%%a%" /XD *

        )

pause

如果我将远程路径 ("%remotePath%%%a%") 更改为像 Desktop 这样的简单路径,那么它将起作用:

robocopy "%path%%%a%" Desktop /XD *

对我的问题有什么建议吗?

cmd 结果看起来像

Y:\P25_Ladybug\RENDER\Comp\LB003\Sc001[=12=]1remotePath%\*.*
            *
            *.* /COPY:DAT /R:1000000 /W:30 Y:\P25_Ladybug\RENDER\Comp\LB003\Sc00
1[=12=]2remotePath%\*.*
            *
            *.* /COPY:DAT /R:1000000 /W:30 Y:\P25_Ladybug\RENDER\Comp\LB003\Sc00
1[=12=]3remotePath%\*.*
            *
            *.* /COPY:DAT /R:1000000 /W:30 Press any key to continue . . .

谢谢

循环变量的正确语法是 %%a,没有结尾的 %。在你的代码中,挂起 % 期望在它之后有一个变量名,并且在所需的关闭 % 有效地从 %remotePath% 变量中剥离开头 % 之前没有跳过所有内容,那是为什么路径不正确。

这是正确的语法:

robocopy "%path%%%a" "%remotePath%%%a" /XD *