3

Мне нужно скопировать файл 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 ответ1

2

Вам нужно обернуть %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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .