Datei anhand von Textteilen aus der Datei mit PowerShell umbenennen
Hallo,
ich bräuchte ein Powershellscript welches alle Dateien in einem Verzeichnis nach einer bestimmten Zeichenfolge durchsucht und die jeweilige Datei mit Textteilen aus der Datei umbenennt.
Hier ein Auszug aus den Dateien:
Der Fachmann wird sofort erkennen, dass es sich hier um eine Edifact-Datei handelt.
Gesucht werden soll nach "BGM+38" und in Abhängigkeit des nächsten Zeichens (0 oder 1) die Datei entweder mit 0 = CD oder 1 = CR und der Zahl nach dem nächsten "+" plus der original Dateiendung (hier wfa) umbenannt werden .Also entsprechend dem Beispiel in "CD970418651.wfa"
Meine eigentliche Idee wäre nach BGM suchen den Text bis zum nächsten ' in einer Variablen speichern und in ein Array am "+" splitten.
Dann könnte man in Abhängigkeit des 2. und 3. Arrayfeldes den Dateinamen zusammensetzen.
Begonnen habe ich hiermit
Da endet aber mein Powershellverständnis bereits.
Für Eure Hilfe wäre ich dankbar.
G LianenSchwinger
ich bräuchte ein Powershellscript welches alle Dateien in einem Verzeichnis nach einer bestimmten Zeichenfolge durchsucht und die jeweilige Datei mit Textteilen aus der Datei umbenennt.
Hier ein Auszug aus den Dateien:
UNH+1+INVOIC:D:96B:UN:ITEK34'BGM+380::89+970418651+9'DTM+3:20181113:102'
Der Fachmann wird sofort erkennen, dass es sich hier um eine Edifact-Datei handelt.
Gesucht werden soll nach "BGM+38" und in Abhängigkeit des nächsten Zeichens (0 oder 1) die Datei entweder mit 0 = CD oder 1 = CR und der Zahl nach dem nächsten "+" plus der original Dateiendung (hier wfa) umbenannt werden .Also entsprechend dem Beispiel in "CD970418651.wfa"
Meine eigentliche Idee wäre nach BGM suchen den Text bis zum nächsten ' in einer Variablen speichern und in ein Array am "+" splitten.
Dann könnte man in Abhängigkeit des 2. und 3. Arrayfeldes den Dateinamen zusammensetzen.
Begonnen habe ich hiermit
Get-ChildItem -Path $SrcDir\* -Include $FileType | Select-String -Pattern $SearchKey
Da endet aber mein Powershellverständnis bereits.
Für Eure Hilfe wäre ich dankbar.
G LianenSchwinger
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 392767
Url: https://administrator.de/contentid/392767
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
2 Kommentare
Neuester Kommentar
Regular Expressions does the work for you:
Best Regards
dir $SrcDir\* -Include $FileType -File | ?{(gc $_.FullName) -match 'BGM\+38([01]).*?\+(\d+)'} | rename-item -NewName {"$(@{$true='CD';$false='CR'}[$matches[1] -eq '0'])$($matches[2])$($_.Extension)"} -Force -verbose