Powershellscript Ordnernamen auslesen und neuen Ordner erstellen

rodus62

Newbie
Registriert
Dez. 2020
Beiträge
2
Hallo,
ich hab da ein kleines Problem, bei dem ich nicht weiterkomme. Ich habe ein Laufwerk ( nennen wir das mal Z ) in dem sich mehrere hundert Ordner und Unterordner befinden. Diese Ordner sind Abteilungen zugeordnet. In den Ordnern sind Unterordner, die sich zum Teil auf das laufende Jahr beziehen (z.B. z:\Marketing\Website\2018; z:\Marketing\Website\2019, z:\Perso\2018, z:\Perso\2019 usw. ).
Ich möchte nun ein Script erstellen, dass mir in allen Verzeichnissen und Unterverzeichnissen, in denen das Jahr 2020 steht ein neues Verzeichnis 2021 ( 2022, 2023usw.) erstellt.
Ich bin derzeit soweit, dass ich die Verzeichnisstruktur mit "get-childitem" usw. in eine Variable ($alleordner) gepackt habe. Anschliessend wird über die "foreach" Schleife eine Variable ($unterordner) aus der Variablen $alleordner erstellt.
Bei der if-Answeisung gehen bei mir die Probleme aber schon los. Wie frage ich jeden einzelen Ordner ab, ob in ihm ein Verzeichnis "2020" existiert in das ich dann im zweiten oder dritten Schritt ein Verzeichnis 2021 erstelle ? Über "TestPath" alleine funktioniert das nicht. Kann ich "Testpath" irgendwie zerlegen, dass er nur nach dem Verzeichnis "2020" sucht ? Es ist ja auch nicht weiter wichtig, was unterhalb des Verzeichnisses "...\2020" steht, da die darunterliegenden Verzeichnisse ja nicht ins neue übernommen werden sollen.

Stehe da im Moment ziemlich auf dem Schlauch, und freue mich über kleine ( oder auch "größere") Hilfestellungen

VG
Rolf
 
Wenn du je Unterordner sowieso 2020 erstellen willst, brauchst du keinen Test.

Du kannst den Error für existierende Sub-Ordner einfach ignorieren.


Sorry, hatte es nur überflogen.

Wieso sollte Test-Path in einer Schleife nicht gehen?

Code:
Get-ChildItem -Directory -Name Z:\

Code:
[System.String]::Concat( $unterordner, "\2020" )
 
Zuletzt bearbeitet:
Code:
Get-ChildItem -Path "Z:\" -Recurse -Directory -Include "2020" | ForEach-Object { $_.Parent.CreateSubdirectory("2021") }
 
  • Gefällt mir
Reaktionen: floTTes
super. Danke für die Rückmeldung. Dass das SOOO einfach war/ist hab ich jetzt nicht gedacht. Da hab ich viel zu kompliziert gedacht.
 
Zurück
Oben