如果文本文件包含文件列表,如下面的代码,但是如果%%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
答案 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
)
另外,请考虑将所有路径/文件名用双引号括起来,如上所示,以避免出现包含空格和/或特殊字符的名称的问题。