Windows PowerShell: DIR / Get-ChildItem und Rekursive Suche

Die PowerShell bietet auch Alias-Befehle. Damit steht der Verwendung von aus der Eingabeaufforderung bekannten Befehlen wie dir, echo, ren, copy, del usw. grundsätzlich nichts im Wege. Eine vollständige Auflistung aller Alias Kommandos erhält man durch Verwendung des Cmdlet Get-Alias

Allerdings gehorchen die Befehle nicht unbedingt auf die gleiche Weise wie in der Eingabeaufforderung. Nehmen wir als Beispiel einmal den dir Befehl. Die einfache Eingabe funktioniert wie erwartet. Ebenso funktioniert die Verwendung von Filtern.

dir *.doc

Möchte man aber beispielsweise ein Verzeichnis mit sämtlichen Unterverzeichnissen durchsuchen, so erledigte man das in der Eingabeaufforderung beispielsweise mit

dir H:\Dokumente\*.docx /s

Verwendet man dies in der PowerShell, erhält man prompt eine Fehlermeldung. Das liegt ganz einfach daran, dass die zu übergebenen Parameter etwas anders aussehen müssen. dir ist ein Alias für Get-ChildItem. Die entsprechende Syntax lässt sich in der PowerShell mit

get-help dir

bzw.

get-help get-childitem

abrufen. Sofern man die richtige Reihenfolge einhält, lässt sich das Dir Kommando annähernd wie oben gezeigt verwenden.

 
dir <Pfad> <Filter> -recurse

dir H:\Dokumente *.docx -recurse

Die Reihenfolge spielt hier eine wesentliche Rolle und man  sieht auch, daß  zwischen dem Parameter für den Pfad und dem Filter eine Leerstelle sein muß, damit zwischen diesen unterschieden werden kann.

Bei dem o.g. Befehl spielte die Reihenfolge eine Rolle. Bei Verwendung von benannten Parametern, spielt die Reihenfolge keine Rolle. Die beiden nachfolgenden Befehle bewirken beide das gleiche. Wie zu erkennen, spielt die Beachtung der Groß-/Kleinschreibung bei der Eingabe von PowerShell Befehlen grundsätzlich keine Rolle.

 
dir -Path h:\Dokumente -Filter *.docx -Recurse

dir -filter *.docx -path h:\dokumente -recurse

Es lassen sich auch noch weitere Parameter verwenden. Möchte man z.B. auch versteckte Dateien mit anzeigen lassen, genügt die Angabe von -Force. Ebenso lässt sich ein Punkt zur Angabe des aktuellen Verzeichnis oder auch der Ein-/Ausschluss von Objekten mittels -Include bzw. -Exclude bewerkstelligen. Die Hilfe zu Get-ChildItem liefert umfangreiche Hilfe. Zudem lassen sich auch Beispiele mit

Get-Help Get-ChildItem -Examples

abrufen.