Tente isso no Powershell:
Get-ChildItem *.jpg | Rename-Item -newname {$_.LastWriteTime.toString("dd.MM.yyyy.HH.mm") + ".jpg"}
Eu tenho centenas de arquivos JPG em uma pasta. Desejo renomear cada arquivo para que o nome do arquivo seja substituído por "Data / hora modificada" desse arquivo, ou seja, 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 os dois pontos (:) não podem ser usados em nomes de arquivos, os dois pontos entre HH e MM devem ser substituídos por um período.
Eu não quero usar uma ferramenta de terceiros. Você pode me fornecer o código para conseguir isso em Powershell ou linha de comando?
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á existir.
Então, adicionei a solução do Siim K da seguinte maneira e executei isso dentro do 'Windows Powershell ISE':
Get-ChildItem * .jpg | ForEach-Object { $ NewName = $ .LastWriteTime.toString ("yyyy.MM.dd.HH.mm.ss.ss") + ($ script: i ++) + ".jpg" $ Destination = Join-Path -Path $ .Directory.FullName -ChildPath $ NewName Move-Item -Path $ _ FullName -Destination $ Destino -Force }
Eu achei a ordem 'yyyy.MM.dd.mm.ss.ss' listando minhas imagens melhor e reconheci que nenhuma das minhas imagens foi reduzida (acidentalmente removida) dentro da pasta também. Espero que isso seja útil para outros 'superusuários' (iniciantes ou experientes).