我需要将文件复制C:\plst.m3u
到 的所有子文件夹中C:\Music
。我使用以下命令:
FOR /R "C:\Music" %G IN (.) DO xcopy "C:\plst.m3u" %G
它可以工作,但仅适用于不包含空格的路径。
因此,在路径中C:\Music\AB\
,它成功创建了plst.m3u
文件夹AB
。但对于路径,C:\Music\A B\
它返回错误:invalid number of parameters
我现在没什么主意了。有什么建议吗?
答案1
您需要将其包装%G
在 xcopy 中,否则它将b\
作为 xcopy 命令的一部分传递
例子:
FOR /R "C:\Music" %G IN (.) DO xcopy "C:\plst.m3u" "%G"
为什么会发生这种情况?
传递的命令是DO xcopy "C:\plst.m3u" C:\Music\A B\
因为输出中没有 %G 的环绕
因为那里有一个空格,所以它会尝试将其b\
作为 xcopy 的一部分传递。xcopy 可用的开关:
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
[/EXCLUDE:file1[+file2][+file3]...]
由于b\
不属于这些开关的一部分,因此它会返回错误invalid number of parameters