Como posso copiar todos os arquivos com uma certa extensão em um único diretório (sem a estrutura de diretórios)?

2

Eu tenho tentado copiar todos os arquivos nos vários subdiretórios que têm uma extensão JPG localizada em C: em um único diretório em D: . Eu não quero preservar a estrutura de diretórios.

Isso é o máximo que eu consegui:

for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures

Depois desse ponto, perguntam se quero sobrescrever D:\pictures . Se eu respondo yes , acabo com um único arquivo, e se eu responder não, nenhum arquivo será copiado.

Eu também tentei adicionar /y no final do comando, mas ele substitui os arquivos anteriores deixando apenas o último.

    
por Doug 14.04.2012 / 02:59

2 respostas

2

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 \ à direita para garantir que copy trate pictures como um diretório.

Se você copiar vários arquivos para um único local (por exemplo, copy *.* D:\backup ), copy tratará automaticamente backup como um diretório. Mas este não é o caso quando você copia um único arquivo.

    
por 14.04.2012 / 03:05
0

para / R c: \ %% 1 em ("* .txt") do @xcopy "%% 1" d: \ txttemp %% ~ p1 / e / i / s / q / h

esse código será copiado sem sobrescrever e criará pastas e subpastas

    
por 18.02.2015 / 20:24