Benennen Sie mehrere Dateien mit cmd oder Powershell in "Geändertes Datum / Uhrzeit" um

9

Ich habe Hunderte von JPG-Dateien in einem Ordner. Ich möchte jede Datei umbenennen, damit der Dateiname durch "Änderungsdatum / -zeit" dieser Datei ersetzt wird, nämlich DD.MM.RRRR.HH.MM.jpg. Zum Beispiel,

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

Da Doppelpunkt (:) nicht in Dateinamen verwendet werden kann, muss der Doppelpunkt zwischen HH und MM durch einen Punkt ersetzt werden.

Ich möchte kein Tool eines Drittanbieters verwenden. Können Sie mir den Code zur Verfügung stellen, um dies in Powershell oder in der Befehlszeile zu erreichen?

Mehper C. Palavuzlar
quelle

Antworten:

15

Versuchen Sie dies in Powershell:

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

Ich hoffe euch macht mein Feedback hier nichts aus.

'Element umbenennen' gab mir den folgenden Fehler: Element umbenennen: Es kann keine Datei erstellt werden, wenn diese Datei bereits vorhanden ist.

Daher habe ich die Lösung von Siim K wie folgt ergänzt und diese in 'Windows Powershell ISE' ausgeführt:

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 $ Destination -Force}

Ich habe festgestellt, dass die Reihenfolge "yyyy.MM.dd.mm.ss.ss" meine Bilder besser auflistet, und ich habe festgestellt, dass auch meine Bildanzahl im Ordner nicht reduziert (versehentlich gelöscht) wurde. Ich hoffe, dass dies für andere "Superuser" (Anfänger oder Fortgeschrittene) hilfreich ist.

Tony Nilsson
quelle