FOR /R 输出中的空格

FOR /R 输出中的空格

我需要将文件复制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

相关内容