2015-08-03 49 views
0

我的脚本非常简单,但我无法使robocopy工作。脚本中的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("%remotePath%%%a%"),以简单的像Desktop那么它会工作:

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

对什么是错我的任何意见?

cmd的结果看起来像

Y:\P25_Ladybug\RENDER\Comp\LB003\Sc001\001remotePath%\*.* 
      * 
      *.* /COPY:DAT /R:1000000 /W:30 Y:\P25_Ladybug\RENDER\Comp\LB003\Sc00 
1\002remotePath%\*.* 
      * 
      *.* /COPY:DAT /R:1000000 /W:30 Y:\P25_Ladybug\RENDER\Comp\LB003\Sc00 
1\003remotePath%\*.* 
      * 
      *.* /COPY:DAT /R:1000000 /W:30 Press any key to continue . . . 

感谢

+0

尝试'robocopy'命令前加'echo'并检查扩张的结果。我敢打赌,应该删除最后一个'%'。 – Melebius

回答

0

的循环变量正确的语法是%%a没有尾随%。在你的代码,挂%期待后,一个变量名和什么都没有跳过一切,直到所需的收盘%有效地从%remotePath%变量剥离开%,这就是为什么路径是不正确的。

这是正确的语法:

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