Powershell Script Ordner anhand CSV-Kriterien verschieben
Moin, moin,
ich habe hier folgende Ordnerstruktur:

Alle Ordner die mit beginnen, sind leer.
Der Ordner hat folgende Struktur:

Außerdem habe ich aus einer CSV-Datei die Variable erzeugt, die
folgenden Inhalt hat:

Die Spalte beinhaltet die Ordnernamen der Ordner, die mit beginnen, ohne das Präfix und das Suffix .
Die Spalte beinhaltet die Ordnernamen, die sich im Ordner befinden.
Nun möchte ich folgendes erreichen:
Anhand der Variable sollen alle Ordner aus in die entsprechenden Ordner verschoben werden.
Also: der Ordner mit der ID kommt mit allem, was drin ist, in usw.
Ich weiß einfach nicht, wie ich das hinbekomme. Könnte mir jemand helfen?
Vielen Dank
Thorsten
ich habe hier folgende Ordnerstruktur:

Alle Ordner die mit
Alt-
Der Ordner
Test-Local

Außerdem habe ich aus einer CSV-Datei die Variable
$MoveInAltClasses
folgenden Inhalt hat:

Die Spalte
AltClass
Alt-
Alt-
-Local
Die Spalte
ID
Test-Local
Nun möchte ich folgendes erreichen:
Anhand der Variable
MoveInAltClasses
Test-Local
Alts-*
Also: der Ordner mit der ID
CS30611M
Alt-HH22A-Local
Ich weiß einfach nicht, wie ich das hinbekomme. Könnte mir jemand helfen?
Vielen Dank
Thorsten
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4353611700
Url: https://administrator.de/forum/powershell-script-ordner-anhand-csv-kriterien-verschieben-4353611700.html
Ausgedruckt am: 27.03.2025 um 06:03 Uhr
7 Kommentare
Neuester Kommentar

# Ordnerpfad der Alt* und Test-Local Ordner beinhaltet
$folder = "d:\root"
$MoveInAltClasses | %{
move-item -Literalpath "$folder\Test-Local\$($_.Id)" -Destination (md "$folder\Alt-$($_.AltClass)-Local" -Force).Fullname
}

Zitat von @thor2511:
Es geht, suuper! Vielen Dank!
Ich will aber nicht nur Lösungen konsumieren, sondern verstehen, läuft.
Warum ist hier nötig?
Danke !!
Es geht, suuper! Vielen Dank!
Ich will aber nicht nur Lösungen konsumieren, sondern verstehen, läuft.
Warum ist hier
-Literalpath
Danke !!
Ist nur für den Fall das Sonderzeichen im Pfad vorhanden sind und diese dann nicht falsch interpretiert werden, wie z.B. [ ] ? usw.
LiteralPath sollte man laut Best Practice immer statt Path verwenden wenn man nicht will das Sonderzeichen expandiert werden könnten und so zu ungewollten Fehlern oder nicht gewollten Aktionen führen, denn bei LiteralPath findet keine Filesystem-Wildcard Interpretation statt

Das funktioniert aber nur bei genau einem Eintrag, alle anderen matches werden ignoriert.
Weil du bei jedem Durchlauf immer wieder nur aus dem Original-Inhalt ersetzt statt die Ersetzung bei jedem Durchlauf auch wieder in die Variable $cfg zurück zu schreiben.