Renomeie vários arquivos como "Data / Hora Modificada" usando cmd ou Powershell

9

Eu tenho centenas de arquivos JPG em uma pasta. Eu quero renomear cada arquivo para que o nome do arquivo seja substituído por "Data / Hora Modificada" desse arquivo, a saber DD.MM.RRRR.HH.MM.jpg. Por exemplo,

Before    After  

001.jpg   11.01.2011.16.58.jpg  
002.jpg   12.01.2011.09.32.jpg  
003.jpg   14.01.2011.12.41.jpg  
...       ...

Como dois pontos (:) não podem ser usados ​​em nomes de arquivos, os dois pontos entre HH e MM devem ser substituídos por um ponto.

Não quero usar uma ferramenta de terceiros. Você pode me fornecer o código para conseguir isso no Powershell ou na linha de comando?

Mehper C. Palavuzlar
fonte

Respostas:

15

Experimente o Powershell:

Get-ChildItem *.jpg | Rename-Item -newname {$_.LastWriteTime.toString("dd.MM.yyyy.HH.mm") + ".jpg"}
Siim K
fonte
0

Espero que vocês não se importem com o meu feedback aqui.

'Renomear item' me deu este erro: Renomear item: não é possível criar um arquivo quando esse arquivo já existe.

Então, adicionei a solução de Siim K da seguinte maneira e executei isso no 'Windows Powershell ISE':

Get-ChildItem * .jpg | ForEach-Object {$ NewName = $ .LastWriteTime.toString ("aaaa.MM.dd.HH.mm.ss.ss") + ($ script: i ++) + ".jpg" $ Destination = Join-Path -Path $ .Directory.FullName -ChildPath $ NewName Move-Item -Path $ _. FullName -Destination $ Destination -Force}

Encontrei a ordem 'aaaa.MM.dd.mm.ss.ss' listando melhor minhas imagens e reconheci que nenhuma contagem de imagens foi reduzida (eliminada acidentalmente) dentro da pasta também. Espero que isso seja útil para outros 'superusuários' (iniciantes ou experientes).

Tony Nilsson
fonte