![Como posso copiar todos os arquivos com uma determinada extensão em um único diretório (sem a estrutura de diretórios)?](https://rvso.com/image/1311333/Como%20posso%20copiar%20todos%20os%20arquivos%20com%20uma%20determinada%20extens%C3%A3o%20em%20um%20%C3%BAnico%20diret%C3%B3rio%20(sem%20a%20estrutura%20de%20diret%C3%B3rios)%3F.png)
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