Powershell Ordner auslesen
Hallo erstmal,
ich bin anfänger im Bereich Powershell scripting und bräuchte hilfe für ein Powershell Script.
Ich habe mehrere Ordner, wo auch mehrere Unterordner existieren. Ich brauche von jedem Ordner ein bestimmten Unterordner der ausgelesen werden soll.
Beispiel
Ordner1 -> xml Ordner (nur den Ordner XML brauche ich)
-> x Ordner
-> y Ordner
-> z Ordner
Ordner2 -> xml Ordner (nur den Ordner XML brauche ich)
-> x Ordner
-> y Ordner
-> z Ordner
Ein Script habe ich soweit, nur das Problem ist, das das Script alle Unterordner ausliest.
Vielen dank
gruß calzoni
ich bin anfänger im Bereich Powershell scripting und bräuchte hilfe für ein Powershell Script.
Ich habe mehrere Ordner, wo auch mehrere Unterordner existieren. Ich brauche von jedem Ordner ein bestimmten Unterordner der ausgelesen werden soll.
Beispiel
Ordner1 -> xml Ordner (nur den Ordner XML brauche ich)
-> x Ordner
-> y Ordner
-> z Ordner
Ordner2 -> xml Ordner (nur den Ordner XML brauche ich)
-> x Ordner
-> y Ordner
-> z Ordner
Ein Script habe ich soweit, nur das Problem ist, das das Script alle Unterordner ausliest.
Vielen dank
gruß calzoni
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 197421
Url: https://administrator.de/forum/powershell-ordner-auslesen-197421.html
Ausgedruckt am: 03.05.2025 um 22:05 Uhr
8 Kommentare
Neuester Kommentar

Hi
Grüße
Exzellius
if not $ORDNERNAME = "XML" then goto [nächten Ordner auslesen] else write-host $ORDNERNAME
Grüße
Exzellius

Hi calzoni,
1. deine Fragezeichentaste scheint kaputt zu sein
2. hier im Forum (eig. in jedem Forum) gibt es sogenannte Code-Tags
siehe:
Mit < code >Quellcode< /code > kann ein beliebiger Quellcode in richtiger Formatierung (Abstände, Einrückungen usw.) angezeigt werden.
3. zu deinem Problem, ich meine, dass in der Varibale $Folder dein aktuell ausgelesener Ordner drinsteht von daher:
alles ungetestet, da ich grade keine Powershel-Konsole da hab 
Grüße
Exzellius
1. deine Fragezeichentaste scheint kaputt zu sein
2. hier im Forum (eig. in jedem Forum) gibt es sogenannte Code-Tags
siehe:
Mit < code >Quellcode< /code > kann ein beliebiger Quellcode in richtiger Formatierung (Abstände, Einrückungen usw.) angezeigt werden.
3. zu deinem Problem, ich meine, dass in der Varibale $Folder dein aktuell ausgelesener Ordner drinsteht von daher:
Set-StrictMode -Version "2.0"
Clear-Host
#RootPath
$Path = "C:\Users\lc\Documents\test"
$Folders = (Get-ChildItem $path)
$myfolders = Foreach($Folder in $Folders){
If($Folder.PSIsContainer -eq $True){
if not $Folder = "XML" then goto Sprungmarke
New-Object -TypeName Psobject -Property @{
Name = $Folder.FullName
#CountFiles = ((gci $Folder.Fullname -recurse | Where {$_.PSIsContainer -eq $False}) |Measure-Object).Count
}
:Sprungmarke
}
}
#Ausgabe1
#$myFolders | sort SumFiles -descending | ForEach{
1."{0} {1:0.00} MB {2}" -f $($_.name),$($_.size),$($_.Sumfiles)
#}
#Ausgabe2
$myFolders | sort Name | ft -auto
#Ausgabe3 (csv-File)
$myFolders | sort SumFiles -descending | export-csv "C:\Users\LC\Documents\test1.csv" -delimiter ";"
Grüße
Exzellius

Hi,
soweit richtig er sucht in diesem Pfad und geht alle Ordner durch.
Wenn er jetzt einen Ordner findet der NICHT XML heißt, dann springt er ans Ende der Schleife und nimmt sich den nächsten Ordner. Wenn er einen Ordner findet, der XML heißt, dann führt er deinen ganzen Quellcode aus.
Grüße
Exzellius
soweit richtig er sucht in diesem Pfad und geht alle Ordner durch.
Wenn er jetzt einen Ordner findet der NICHT XML heißt, dann springt er ans Ende der Schleife und nimmt sich den nächsten Ordner. Wenn er einen Ordner findet, der XML heißt, dann führt er deinen ganzen Quellcode aus.
Grüße
Exzellius

Hi calzoni,
doch geht ;) allerdings ist es schon ne Weile her, dass ich mit Powershell gearbeitet hab und von daher können Fehler schonmal passieren.
also
1) ich hab keine Ahnung, wie zum Teufel nochmal ne if-Selektion in Powershell ging, muss mich da iwo verschrieben haben
2) goto Sprungmarke war eher eine Verzweiflungstat, weil ich garnicht weiß ,wie Sprungmarken in Powershell verwendet werden und das soweiso schlechter Stil ist
3) verwendest du bitte Code-Tags wie oben beschrieben ?
4) hier ein neuer Versuch, probiers mal bitte aus:
Viel Glück und freundliche Grüße
Exzellius
doch geht ;) allerdings ist es schon ne Weile her, dass ich mit Powershell gearbeitet hab und von daher können Fehler schonmal passieren.
also
1) ich hab keine Ahnung, wie zum Teufel nochmal ne if-Selektion in Powershell ging, muss mich da iwo verschrieben haben
2) goto Sprungmarke war eher eine Verzweiflungstat, weil ich garnicht weiß ,wie Sprungmarken in Powershell verwendet werden und das soweiso schlechter Stil ist
3) verwendest du bitte Code-Tags wie oben beschrieben ?
4) hier ein neuer Versuch, probiers mal bitte aus:
Set-StrictMode -Version "2.0"
Clear-Host
#RootPath
$Path = "C:\Users\lc\Documents\test"
$Folders = (Get-ChildItem $path)
$myfolders = Foreach($Folder in $Folders){
If($Folder.PSIsContainer -eq $True){
if not ($Folder = "XML"){
goto Sprungmarke
}
New-Object -TypeName Psobject -Property @{
Name = $Folder.FullName
#CountFiles = ((gci $Folder.Fullname -recurse | Where {$_.PSIsContainer -eq $False}) |Measure-Object).Count
}
:Sprungmarke
}
}
#Ausgabe1
#$myFolders | sort SumFiles -descending | ForEach{
1."{0} {1:0.00} MB {2}" -f $($_.name),$($_.size),$($_.Sumfiles)
#}
#Ausgabe2
$myFolders | sort Name | ft -auto
#Ausgabe3 (csv-File)
$myFolders | sort SumFiles -descending | export-csv "C:\Users\LC\Documents\test1.csv" -delimiter ";"
Viel Glück und freundliche Grüße
Exzellius