functionstrut
Goto Top

überprüfen ob 3 Ordner in den jeweiligen Unterordnern existieren

Hallo face-smile

ich versuche mich gerade daran eine Powershellzeile zu schreiben die viele Unterordner darauf überprüft ob immer die selben Ordner(Namen) vorhanden sind.

Die Struktur sieht so aus

D:\Ordner_1\Abfrage_1
D:\Ordner_1\Abfrage_2
D:\Ordner_1\Abfrage_3
D:\Ordner_2\
D:\Ordner_3\Abfrage_1
D:\Ordner_3\Abfrage_2
D:\Ordner_3\Abfrage_3

das Ergebnis sollte dann in einer TXT ganz normal ausgegeben werden. In diesem fall müsste es so aussehen:

D:\Ordner_1\
D:\Ordner_3\


Ordner_2 NICHT weil in diesem ordner ja nicht die entsprechenden 3 Unterordner existieren

Kann mir dabei jemand helfen?

Ich Bedanke mich schonmal face-smile

Content-Key: 305001

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

Printed on: April 19, 2024 at 22:04 o'clock

Member: colinardo
colinardo May 20, 2016 updated at 12:43:57 (UTC)
Goto Top
Hi,
da gibts wie immer mehrere Wege... hier mal ein paar davon:
$path = 'D:\'  
$ausgabe = 'D:\log.txt'  
$foldernames = @('Abfrage_1','Abfrage_2','Abfrage_3')  
gci $path | ?{$_.PSIsContainer -and ($_.GetDirectories() | ?{$_.Name -in $foldernames}).Count -eq $foldernames.Count} | select -Expand Fullname | out-file $ausgabe
oder vielleicht für dich einfacher zu verstehen:
$path = 'D:\'  
$ausgabe = 'D:\log.txt'  
gci $path | ?{$_.PSIsContainer -and (Test-Path "$($_.FullName)\Abfrage_1") -and (Test-Path "$($_.FullName)\Abfrage_2") -and (Test-Path "$($_.FullName)\Abfrage_3") } | select -Expand Fullname | out-file $ausgabe  

Und weil heut Freitag ist noch eine Variante...
$path = 'D:\'  
$ausgabe = 'D:\log.txt'  
$foldernames = @('Abfrage_1','Abfrage_2','Abfrage_3')  
gci $path | ?{$_.PSIsContainer -and $_.GetDirectories().Count -gt 0 -and !(compare $_.GetDirectories().Name $foldernames)} | select -Expand Fullname | out-file $ausgabe
Jetzt hast du die Qual der Wahl face-smile

Schönes Wochenende.
Grüße Uwe
Member: colinardo
colinardo May 25, 2016 at 11:01:46 (UTC)
Goto Top
Gibts Verständnisprobleme ?

Ansonsten:
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.