Isso pode ser feito com o bom e velho for
:
for /r C:\Folder %f in (*.png) do @copy "%f" C:\png
Nada extravagante.
Gostaria de usar o xcopy em uma máquina Windows para extrair todos os arquivos com a extensão .png em um único diretório.
Eu tentei xcopy C:\folder\*.png /s C:\png\
, mas ele está mantendo os subdiretórios dentro da pasta \ (por exemplo, em C: \ png, há C: \ png \ a \ b \ c \ img.png) que eu não não quer. Eu simplesmente quero tudo .png dentro de C: \ png sem que ele retenha a estrutura de diretórios que estava na pasta C: \.
Se você tem o cygwin instalado, isso seria um trabalho para encontrar:
cp 'find /cygdrive/c/folder/* -name '*png'' /cygdrive/c/png/
(embora isso tenha problemas se algum dos nomes de arquivos tiver espaços neles - você encontrará alguma variante de um comando find
que funcionará em todas as circunstâncias)
Se você estiver executando o Vista, 2003 ou 2008, o menos flexível, mas ainda assim útil, é "forfiles" seu amigo. Algo como:
FORFILES /P c:\folder\ /M *.png /S /C "cmd /c copy @file c:\png\"
Nota: Eu não testei nenhum dos comandos acima, mas em teoria eles devem funcionar ...