使用Robocopy自定义文件副本

时间:2014-01-27 14:05:53

标签: batch-file robocopy

如果文本文件包含文件列表,如下面的代码,但是如果%%a是一个无效的参数,即使它正确地将%% a视为文件名,也会出错。

有什么方法吗?

编辑:

for /f "delims=" %%a in (C:\audit\test.txt) do (
  robocopy "%%~dpa" "Z:" "%%~nxa" /S /E /COPY:DAT /PURGE /MIR /R:1000000 /W:30
)
pause

1 个答案:

答案 0 :(得分:1)

ROBOCOPY的文件名参数不能包含路径,无论是绝对路径还是相对路径。它应该只是一个名称(带扩展名)。 (或者它可以是面具。)

如果您的文本文件包含完整路径,则只能使用~nx组合修饰符提取名称和扩展名:

for /f "delims=" %%a in (C:\audit\test.txt) do (
  robocopy "C:\Test1" "C:\Test2" "%%~nxa" /S /E /COPY:DAT /PURGE /MIR /R:1000000 /W:30
)

另外,请考虑将所有路径/文件名用双引号括起来,如上所示,以避免出现包含空格和/或特殊字符的名称的问题。