Mit Powershell Dateien umbenennen

Ich hatte vor kurzem die interessante Aufgabe, Dateien umzubenennen, deren Namen folgenden Aufbau hatten: texttexttext_ttmmjjjj.xyz

Diese Namen sollten zu jjjjmmtt_texttexttext.xyz werden. Gelöste habe ich die Aufgabe mit zwei kurzen Powershell-Skripten

# Finde alle Dateien im aktuellen Verzeichnis, die am Ende des Dateinamens acht Ziffern haben
ls |  % { if ($_.name -match "\d{8}\.\w{3}$") {
# Ersetze diesen Dateinamen  durch das Datum
rni $_.fullname $_.name.replace($_.name,$_.name.substring($_.name.length-12,8)
# verbunden mit dem Dateinamen ohne Datum
+ "_" + $_.name.substring(0,$_.name.length-13)
# und der Dateiendung.
+ $_.name.substring($_.name.length-4,4))
  }}

Der zweite Teil, die Umsortierung des Datum war dann auch schnell erledigt:

# Suche alle Dateien, die mit acht Ziffern anfangen
ls |  % { if ($_.name -match "^\d{8}.*") { 
# Benenne die Datei um, erst das Jahr, dann der Monat
# dann der Tag
rni $_.fullname ($_.name.substring(4,4) + $_.name.substring(3,2)
+ $_.name.substring(0,2) + "_" 
+ $_.name.replace($_.name,$_.name.substring(9,$_.name.length-9)))
}}

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website