flashlightz
Goto Top

Skript zum aut. Anpassen von Dateinamen CSV zum Abgleich

Guten Tag zusammen,

ich benötige Hilfe dabei ein Skript zu erstellen, welches mir Dateinamen anpasst.

Es geht um die Identifizierungen bzw. Umbenennungen von eingehenden Faxen auf ein Windows Share.

Der Dateiname eines Faxes ist meistens eFAX_00490800123456_00490800987654321.pdf (Absenderrufnummer und Empfängernummer) -- Manchmal kommen die auch in dem Format eFAX_+4980015...

Ich habe mir jetzt schon eine CSV Datei erstellt, in der alle Absenderrufnummern aufgelistet sind und in die zweite spalte den Namen.

Mein Wunsch ist, dass der String der Absenderrufnummer durch den Absender Ersetzt wird und der Dateiname vorne komplett gekürzt wird damit wenn 0049 oder +49 verwendet werden nicht zu "toten" Zeichen im Dateinamen führt.

Viele Grüße und schon mal vielen Dank für euren Input, mir fehlt nur etwas der Ansatz wie ich daran herangehen soll.

Content-ID: 4229918338

Url: https://administrator.de/contentid/4229918338

Ausgedruckt am: 04.11.2024 um 18:11 Uhr

4091525239
4091525239 11.10.2022 aktualisiert um 10:56:14 Uhr
Goto Top
CSV
"Absendernummer";"Name"  
"0049123456";"Max Muster"  
"00499876543";"Irina Musterfrau"  
...
..
.
Powershell
$ordner = "\\server\fax"  
$csvfile = "\\server\numbermapping.csv"  
$csv = Import-Csv $csvfile -Delimiter ";"  
foreach ($file in Get-ChildItem $ordner -File -Filter *.pdf){
    $number = (($file.Name -replace '\+','00') -split '_')[1]  
    $name = $csv | ?{$_.AbsenderNummer -eq $number} | select -ExpandProperty Name
    if ($name){
         rename-item $file.Fullname -NewName ($file.Name -replace 'eFAX_[\d\+]+',$name) -verbose  
    }
}
Ein -whatif eingefügt am Ende von Zeile 8 würde nur anzeigen was durchgeführt wird (Für Tests ohne etwas zu verändern).