Umbenennung von Dateien per powershell
In Linux Umgebungen haben Administratoren für Logdateien von WebSphere Application Server, Tomcat und andere Middleware Produkte meist Skripte, um die Protokolle täglich oder wöchentlich umzubenennen (per crontab).
Unter Windows habe ich auf die schnelle keine vernünftige Scriptlösung gefunden. Meine Lösung stelle ich in meinem Azure DevOps Projekt pwshLogSwitch zur Verfügung.
Das kleine Script erwartet mindestens ein Startverzeichnis als Parameter. Alle Dateien in diesem Verzeichnis und darunter werden umbenannt, solange die Kriterien passen.
Die Auswahlkriterien werden mit den Parametern
-Filter
-IncludePattern
-ExcludePattern
definiert und entsprechen den gleichnamigen Parametern von Get-ChildItem. Es können auch reguläre Ausdrücke und Wildcards übergeben werden.
Als Verzeichnis können mehrere Verzeichnisnamen per : getrennt übergeben werden.
IncludePattern und ExcludePattern können ebenfalls mehrere Werte enthalten. Diese sind per Komma zu trennen.
Beispiele:
logswitch.ps1 -s -x *.ps1 -i ‘*.ot,*.out’ -d folder1:folder2:nonexistingFolder
logswitch.ps1 -simulate -ExcludePattern *.ps1 -IncludePattern ‘*.ot,*.out’ -Directories folder1:folder2:nonexistingFolder
logswitch.ps1 -x ‘[2][0][12][0-9]*,1.*’ -f *.log -d folder1:folder2:nonexistingFolder