Como copiar todos os arquivos por extensão especificada para outro local recursivamente

2

Eu estava tentando a solução aceita aqui: link Mas isso não funciona, e meu comentário sobre a solução aceita não está sendo respondido.

Estou tentando copiar todas as imagens que tenho na minha unidade Imagens (somente PNG, JPG, sem os arquivos de vídeo) para uma unidade diferente, mas sem sorte.

O ideal é copiar recursivamente, mas para um destino simples (sem espelhar os subdiretórios de origem)

Eu tentei este comando: Copy-Item -path "C:\Users\genadi\Pictures\" -include "*.JPG", "*.PNG" -Destination "D:\" com e sem -recurse , mas nada acontece.

Idealmente, eu quero um script que irá 1) reduzir o tamanho original de todas as imagens JPG e PNG (incluindo todas as subpastas) e 2) copiar o tamanho reduzido para o destino especificado.

Atualmente, meus originais têm cerca de 20 GB, preciso encaixá-los em uma unidade flash para fins de exibição / impressão, etc. e facilmente repetir isso quando necessário (por isso, o script seria bom).

    
por Carmageddon 29.10.2017 / 13:28

1 resposta

6

Isso porque o nome do objeto retornado pelo cmdlet não inclui a extensão. É necessário anexar \* . Não tenho certeza se Copy-Item permite que você "colapse" o diretório de destino, por isso usaria Get-ChildItem com -Recurse e canalizaria para Copy-Item

Get-ChildItem -Path "C:\Users\genadi\Pictures\*" -Include *.jpg,*.png -Recurse | Copy-Item -Destination D:\
    
por 29.10.2017 / 13:55

Tags