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?

Respostas:


15

Experimente o Powershell:

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

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).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.