Comando ou script para colar um arquivo em várias pastas e ter o tipo de arquivo sobrescrito o mesmo do seu tipo, mantendo o nome do arquivo original?

0

O título já explica, mas vou ser um pouco mais específico aqui.

Estou tentando substituir um arquivo .jpg em várias pastas diferentes por um arquivo .jpg diferente, mas quero poder manter o nome do arquivo original para que eu não precise renomear todas as imagens para evitar a quebra o caminho do arquivo, como eu faria isso?

por exemplo,

  1. Cole o .jpg em 100 pastas
  2. .jpg substitui todos os outros arquivos .jpg, independentemente do nome do arquivo
  3. O .jpg colado então renomeia para o nome do arquivo sobrescrito original

Editar: Esqueci de mencionar que essas pastas são todas filhos de um pai solteiro, não espalhadas por toda a unidade.

    
por Reality 16.11.2013 / 13:21

1 resposta

3

C: \ newpic.jpgC: \ newpic.jpgEsta é o que o PowerShell é perfeito para:

ls "C:\files" -Recurse -Filter "*.jpg" | ForEach{ cp "C:\newpic.jpg" $_.FullName -WhatIf }

a versão mais detalhada é:

Get-ChildItem "C:\files" -Recurse -Filter "*.jpg" | ForEach-Object { Copy-Item "C:\newpic.jpg" -Destination $_.FullName -WhatIf }

A primeira parte faz um loop em todos os arquivos jpg em C: \, incluindo todos os subdiretórios. A segunda parte pega cada um desses arquivos e sobrescreve com o novo arquivo.

Os comandos acima, na verdade, apenas informam o que eles farão sem fazer isso, remova o -WhatIf para executar a operação de cópia.

    
por 16.11.2013 / 15:08