👉 Jetzt bei Amazon nach deinem nächsten Gaming PCs stöbern (Affiliate-Link – ich erhalte eine kleine Provision, für dich bleibt der Preis gleich)

 

Haben Sie jemals das Bedürfnis gehabt, schnell einen Überblick über die Ordnerstruktur eines Verzeichnisses zu bekommen, ohne dabei von Dateien abgelenkt zu werden? Ob Sie nun regelmäßig mit großen Verzeichnissen arbeiten oder gerade die Verzeichnisstruktur eines neuen Projekts überprüfen möchten – diese Aufgabe kann mit PowerShell effektiv und effizient gelöst werden. In diesem Tutorial lernen Sie, wie Sie ein PowerShell-Skript schreiben, das alle Unterverzeichnisse eines bestimmten Pfades rekursiv auflistet. Wir werden die Cmdlets Get-ChildItem und Where-Object verwenden, um unser Ziel zu erreichen.

Das Problem

Stellen Sie sich vor, Sie haben ein großes Projektverzeichnis und möchten wissen, welche Unterordner darin enthalten sind. Sie möchten jedoch nicht, dass dabei alle Dateien angezeigt werden, da dies die Übersichtlichkeit erschwert. Die Lösung besteht in einem PowerShell-Skript, das rekursiv alle Unterverzeichnisse auflistet.

Die Lösung

Verzeichnisse rekursiv auflisten

Wir beginnen mit dem Cmdlet Get-ChildItem, das in PowerShell verwendet wird, um den Inhalt eines Verzeichnisses abzurufen. Um nur Verzeichnisse rekursiv aufzulisten, können wir den folgenden Befehl verwenden:

# Der Basisbefehl zur Verzeichnisabfrage
Get-ChildItem -Path "C:\Ihr\Verzeichnis\Pfad" -Directory -Recurse
Code-Sprache: PowerShell (powershell)
  • -Path: Gibt den Startpfad an, von dem aus die Suche beginnt.
  • -Directory: Filtert nur die Verzeichnisse.
  • -Recurse: Durchsucht alle Unterverzeichnisse rekursiv.

Herausfiltern der Verzeichnisse mit Where-Object

Manchmal möchten wir die Ergebnisse weiter filtern oder anpassen. Hier kommt Where-Object ins Spiel, das es uns ermöglicht, spezifische Bedingungen zu setzen:

# Verzeichnisse rekursiv auflisten und mit Where-Object filtern
Get-ChildItem -Path "C:\Ihr\Verzeichnis\Pfad" -Recurse | Where-Object { $_.PSIsContainer }
Code-Sprache: PowerShell (powershell)

Where-Object { $_.PSIsContainer }: Filtert die Ergebnisse, sodass nur Containerobjekte (Verzeichnisse) angezeigt werden.

Zeige nur die Top-Level-Verzeichnisse

Falls Sie nur die Top-Level-Verzeichnisse ohne die rekursive Option sehen möchten:

# Zeigt nur Verzeichnisse im angegebenen Pfad, keine Rekursion
Get-ChildItem -Path "C:\Ihr\Verzeichnis\Pfad" -Directory
Code-Sprache: PowerShell (powershell)

Module verwenden

Falls Sie zusätzliche PowerShell-Module verwenden, könnten diese Ihnen helfen, erweiterte Funktionalitäten zu nutzen. In diesem Beispiel benötigen wir jedoch keine speziellen Module, da die gebrauchten Cmdlets standardmäßig verfügbar sind.

Weiterführende Links

Durch das Verständnis und die Anwendung von Get-ChildItem und Where-Object können Sie die Verzeichnisstruktur effektiver untersuchen und anpassen, wie Informationen in Ihren PowerShell-Skripten dargestellt werden. Viel Spaß beim Entdecken Ihrer Verzeichnisse!