Powershell - Dateinamen Prüfung und Verschieben
Hallo liebe Community,
ich habe ein Problem und hoffe ihr könnt mir weiter helfen.
Es gibt einen Import Ordner in dem .pdf Dateien liegen. Diese werden manuell dort abgelegt und sollen/dürfen als Dateinamen nur 8 Zahlen haben (z.b. 40017153.pdf).
Nun soll mittels Script geprüft werden ob der Dateiname der Vorgabe entspricht. Wenn das Ergebnis positiv ist und der Dateiname aus 8 Zahlen besteht dann soll die .pdf Datei in einen Netzwerkordner verschoben werden, ist das Ergebnis negativ und der Dateiname beeinhalten weitere oder eine abweichende Anzahl an Zeichen so soll es in einen Ordner "Fehlerhaft" verschoben werden.
Ich habe leider keine Ahnung wie ich dies umsetzen soll, weil mein Wissen über Powershell Script schreiben noch sehr begrenzt ist.
Nachfolgend einmal grob die entsprechende Ordner der Dateien.
$quelle = .\Verbringungsnachweise\2020\01 - Import
$positiv = \\filemon\vn
$fehler = .\Verbringungsnachweise\2020\02 - Fehlerhaft
Schon jetzt, vielen Dank für eure Hilfe!
ich habe ein Problem und hoffe ihr könnt mir weiter helfen.
Es gibt einen Import Ordner in dem .pdf Dateien liegen. Diese werden manuell dort abgelegt und sollen/dürfen als Dateinamen nur 8 Zahlen haben (z.b. 40017153.pdf).
Nun soll mittels Script geprüft werden ob der Dateiname der Vorgabe entspricht. Wenn das Ergebnis positiv ist und der Dateiname aus 8 Zahlen besteht dann soll die .pdf Datei in einen Netzwerkordner verschoben werden, ist das Ergebnis negativ und der Dateiname beeinhalten weitere oder eine abweichende Anzahl an Zeichen so soll es in einen Ordner "Fehlerhaft" verschoben werden.
Ich habe leider keine Ahnung wie ich dies umsetzen soll, weil mein Wissen über Powershell Script schreiben noch sehr begrenzt ist.
Nachfolgend einmal grob die entsprechende Ordner der Dateien.
$quelle = .\Verbringungsnachweise\2020\01 - Import
$positiv = \\filemon\vn
$fehler = .\Verbringungsnachweise\2020\02 - Fehlerhaft
Schon jetzt, vielen Dank für eure Hilfe!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 546828
Url: https://administrator.de/forum/powershell-dateinamen-pruefung-und-verschieben-546828.html
Ausgedruckt am: 07.04.2025 um 01:04 Uhr
11 Kommentare
Neuester Kommentar
$quelle = ".\Verbringungsnachweise\2020\01 - Import"
$positiv = "\\filemon\vn"
$fehler = ".\Verbringungsnachweise\2020\02 - Fehlerhaft"
$a=gci $quelle -Filter *.pdf -File
$a | select fullname, Name |%{
if($_.BaseName -Match '^\d{8}$'){
Move-Item $_.fullname "$positiv" -WhatIf
}else{
Move-Item $_.FullName "$fehler" -WhatIf
}
}

$quelle = ".\Verbringungsnachweise\2020\01 - Import"
$positiv = "\\filemon\vn"
$fehler =".\Verbringungsnachweise\2020\02 - Fehlerhaft"
gci $quelle -File -Filter *.pdf | %{
if($_.Basename -Match '^\d{8}$'){
move-item $_.Fullname -Destination $positiv
}else{
move-item $_.Fullname -Destination $fehler
}
}
Ja, schon klar. 
Entweder bekommt Ihr die Verbringungsnachweise vom Spediteur, Paketdienst, usw. oder Ihr erstellt selbst welche, weil Ihr ein Logistiker seit.
Im 1. Fall übergebt Ihr ja eine Sendungsreferenz an den Logistiker. Diese steht dann auf dem Verbringungsnachweiß, den Ihr nachher vom Logistiker zurück bekommt.
Im 2. Fall wißt Ihr ja selbst, welche Nummer Ihr auf den Verbringungsnachweiß verwendet habt.
Auf jedem Fall sollte es recht einfach sein die Informationen aus den Verbringungsnachweisen und die jeweilige Refernznummer zusammen zu bekommen.
Bei meinem alten AG haben wir entsprechende Nachweise von Bursped, TNT und UPS bekommen. Ließen sich alle vollautomatisch verarbeiten und mit den Daten aus dem ERP verbinden.
Wenn man sich schon darauf verlassen soll, dass Mitarbeiter manuell irgendwelche Nummern eintragen...
Entweder bekommt Ihr die Verbringungsnachweise vom Spediteur, Paketdienst, usw. oder Ihr erstellt selbst welche, weil Ihr ein Logistiker seit.
Im 1. Fall übergebt Ihr ja eine Sendungsreferenz an den Logistiker. Diese steht dann auf dem Verbringungsnachweiß, den Ihr nachher vom Logistiker zurück bekommt.
Im 2. Fall wißt Ihr ja selbst, welche Nummer Ihr auf den Verbringungsnachweiß verwendet habt.
Auf jedem Fall sollte es recht einfach sein die Informationen aus den Verbringungsnachweisen und die jeweilige Refernznummer zusammen zu bekommen.
Bei meinem alten AG haben wir entsprechende Nachweise von Bursped, TNT und UPS bekommen. Ließen sich alle vollautomatisch verarbeiten und mit den Daten aus dem ERP verbinden.
Wenn man sich schon darauf verlassen soll, dass Mitarbeiter manuell irgendwelche Nummern eintragen...

Tippfehler
Moin,
Der Parameter -whatif weist die PS an, den Befehl nicht auszuführen, sondern eine Meldung auszugeben, was passiert, wenn man ihn ausführen würde. Die Meldung heißt also, dass die Datei mit dem Pfad, der hinter "Element" steht, in das Verzeichnis, das hinter "Ziel" steht verschoben worden wäre. Also alles gut. Nimm das -whatif hinter den Befehlen weg und er macht das dann auch gnadenlos.
hth
Erik
Zitat von @PatrickHH:
WhatIf: Ausführen des Vorgangs "Datei verschieben" für das Ziel "Element: .\Verbringungsnachweise\2020\01 - Import\10268250.pdf Ziel: .\Verbringungsnachweise\2020\02 - Fehlerhaft".
WhatIf: Ausführen des Vorgangs "Datei verschieben" für das Ziel "Element: .\Verbringungsnachweise\2020\01 - Import\10268250.pdf Ziel: .\Verbringungsnachweise\2020\02 - Fehlerhaft".
Der Parameter -whatif weist die PS an, den Befehl nicht auszuführen, sondern eine Meldung auszugeben, was passiert, wenn man ihn ausführen würde. Die Meldung heißt also, dass die Datei mit dem Pfad, der hinter "Element" steht, in das Verzeichnis, das hinter "Ziel" steht verschoben worden wäre. Also alles gut. Nimm das -whatif hinter den Befehlen weg und er macht das dann auch gnadenlos.
hth
Erik