Espaços na saída FOR / R

3

Eu preciso copiar um arquivo C:\plst.m3u em todas as subpastas de C:\Music . Estou usando este comando:

FOR /R "C:\Music" %G IN (.) DO xcopy "C:\plst.m3u" %G

Funciona, mas apenas para os caminhos, que não contêm espaços.

Portanto, no caminho C:\Music\AB\ , ele cria com sucesso plst.m3u na pasta AB . Mas para o caminho C:\Music\A B\ , ele retorna erro: invalid number of parameters

Aqui, estou sem ideias. Alguma sugestão?

    
por Demo 08.09.2013 / 23:38

1 resposta

2

Você precisa quebrar o %G no xcopy, senão ele passará b\ como parte do comando xcopy

Exemplo:

FOR /R "C:\Music" %G IN (.) DO xcopy "C:\plst.m3u" "%G"

Por que isso ocorre?

O comando que é passado é DO xcopy "C:\plst.m3u" C:\Music\A B\ , pois não há quebra automática em torno do% G na saída

Como há um espaço, ele tenta passar o b\ como parte do xcopy. Chaves disponíveis para 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]...]

Como b\ não faz parte desses switches, ele retorna o erro invalid number of parameters

    
por 08.09.2013 / 23:45

Tags