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 likes LaTeX and Python, sometimes even combined. Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.

More Posts - Website