Tenho tentado copiar todos os arquivos nos vários subdiretórios que possuem uma JPG
extensão localizada C:
em um único diretório em D:
. Não quero preservar a estrutura de diretórios.
Isto é o máximo que consegui:
for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures
Após esse ponto, sou questionado se desejo sobrescrever arquivos D:\pictures
. Se eu responder yes
, acabo com um único arquivo e, se responder não, nenhum arquivo será copiado.
Também tentei adicionar /y
no final do comando, mas apenas sobrescreve os arquivos anteriores, deixando apenas o último.
Responder1
Isso deve funcionar:
for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures\
Explicação:
O comando copy "%f" D:\pictures
copia o arquivo %f
para o local D:\pictures
, que é o arquivo pictures
no diretório D:\
.
Adicionando um final \
para garantir que copy
seja tratado pictures
como um diretório.
Se você copiar vários arquivos para um único local (por exemplo, copy *.* D:\backup
), copy
ele será tratado automaticamente backup
como um diretório. Mas este não é o caso quando você copia um único arquivo.
Responder2
para /R c:\ %%1 in ("*.txt") faça @xcopy "%%1" d:\txttemp%%~p1 /e/i/s/q/h
este código irá copiar sem sobrescrever e criará pastas e subpastas