Filtern von Dateien und Ordnern mithilfe in PowerShell

  1. Filtern Sie Dateien mit dem Cmdlet Get-ChildItem in PowerShell
  2. Der Get-ChildItem-Alias
  3. Rufen Sie alle Dateien in Unterverzeichnissen mit dem Cmdlet Get-ChildItem in PowerShell ab
  4. Filtern Sie Dateien mit bestimmten Bedingungen mithilfe des Cmdlets Get-ChildItem in PowerShell
Filtern von Dateien und Ordnern mithilfe in PowerShell

Es wird Situationen geben, in denen wir überprüfen müssen, ob Dateien in einem bestimmten Ort oder Verzeichnis vorhanden sind. Obwohl wir den alten Befehl dir verwenden können, würde es nicht ausreichen, nur bestimmte Dateien zu exportieren. Für diesen Anwendungsfall können wir das Cmdlet Get-ChildItem von Windows PowerShell verwenden.

In diesem Artikel wird das PowerShell-Cmdlet Get-ChildItem erläutert, das wir verwenden werden, um alle Elemente im Verzeichnis abzurufen und seine Filterschalterparameter zu verwenden.

Das Windows PowerShell-Cmdlet Get-ChildItem ruft die untergeordneten Elemente an einem bestimmten Speicherort oder Verzeichnis ab. Der im Cmdlet angegebene Speicherort kann beispielsweise ein Dateisystemverzeichnis, eine Registrierung oder ein Zertifikatspeicher sein. Außerdem können die erwähnten untergeordneten Elemente entweder ein anderes Verzeichnis, ein Unterordner oder eine Datei sein.

Get-ChildItem -Path C:\Temp

Im obigen Befehl ruft Get-ChildItem untergeordnete Elemente aus dem Pfad ab, der mit dem Parameter -Path angegeben wurde.

Cmdlet Get-ChildItem zeigt bei Ausführung Dateien, Verzeichnisse mit ihren Eigenschaften Mode, LastWriteTime, Length(Dateigröße) und Name in der PowerShell-Konsole an.

Mode                 LastWriteTime         Length Name                                
----                 -------------         ------ ----
d----l        18/01/2022   8:52 pm                WindowsPowerShell
d----l        20/12/2021   3:36 pm                Zoom
-a---l        30/12/2020   3:23 pm          (151) backup phrase.txt
-a---l        17/06/2021   3:13 am       (410049) CEF1750.pdf
-a---l        16/05/2020   3:32 am          (677) default.cpu1
-a---l        21/08/2019   9:06 am         (2240) Default.rdp
-a---l        26/05/2021   8:24 am        (63399) e-sig.jpg
-a---l        09/03/2020  10:48 pm          (143) fan config.sfsm
-a---l        19/09/2020  12:07 pm    (279515089) MCSA.rar

Filtern Sie Dateien mit dem Cmdlet Get-ChildItem in PowerShell

Wir können den Switch-Parameter -File verwenden, um nur Dateien innerhalb eines Pfads oder Verzeichnisses zurückzugeben.

Beispielcode:

Get-ChildItem -Path C:\Temp -File

Ausgabe:

Mode                 LastWriteTime         Length Name                                
----                 -------------         ------ ----
-a---l        30/12/2020   3:23 pm          (151) backup phrase.txt 
-a---l        17/06/2021   3:13 am       (410049) CEF1750.pdf
-a---l        16/05/2020   3:32 am          (677) default.cpu1
-a---l        21/08/2019   9:06 am         (2240) Default.rdp
-a---l        26/05/2021   8:24 am        (63399) e-sig.jpg
-a---l        09/03/2020  10:48 pm          (143) fan config.sfsm
-a---l        19/09/2020  12:07 pm    (279515089) MCSA.rar

Der Get-ChildItem-Alias

Windows PowerShell verwendet einen standardmäßig integrierten Alias ​​gci für das Cmdlet Get-ChildItem. Wie im folgenden Beispiel-Snippet können Sie den Alias ​​anstelle des Cmdlets für eine schnellere und nahtlose Skripterstellung verwenden.

Beispielcode:

gci -Path C:\Temp -File

Rufen Sie alle Dateien in Unterverzeichnissen mit dem Cmdlet Get-ChildItem in PowerShell ab

Wenn wir alle Dateien in Verzeichnissen und Unterverzeichnissen erhalten möchten, verwenden Sie den Schalterparameter -Recurse.

Beispielcode:

gci -Path C:\Temp -Recurse - Force -File

Hinweis: Der Parameter -Force ermöglicht es dem Cmdlet, Elemente abzurufen, auf die der Benutzer sonst nicht zugreifen kann, z. B. Systemdateien oder versteckte Dateien. Der Force-Parameter überschreibt keine Sicherheitseinschränkungen. Die Implementierung variiert zwischen den Anbietern.

Filtern Sie Dateien mit bestimmten Bedingungen mithilfe des Cmdlets Get-ChildItem in PowerShell

Mit dem Parameter -Filter können wir die Ergebnisse mit einem einzigen Ausdruck herausfiltern. Der Parameter -Filter erfordert den Parameter -Path nicht, da er Ihr aktuelles Arbeitsverzeichnis verwendet.

Beispielcode:

gci -Filter C:\Temp\* -Filter *.txt 

Wir können auch die Schalterparameter -Include verwenden, die mehrere Bedingungen akzeptieren, ein ausgezeichneter Vorteil gegenüber dem Parameter -Filter. Denken Sie jedoch daran, dass für den Parameter -Include der Parameter -Path im Ausdruck vorhanden sein muss.

Beispielcode:

gci -Path C:\Temp\* -File -Include CEF*.pdf, *.txt 

Abgesehen davon, dass mehrere Bedingungen akzeptiert werden, funktioniert der Parameter -Include gut mit Regex, was ihn zu einer vielseitigeren Methode macht als den Parameter -Filter.

Ausgabe:

Mode                 LastWriteTime         Length Name                                
----                 -------------         ------ ----
-a---l        30/12/2020   3:23 pm          (151) backup phrase.txt
-a---l        17/06/2021   3:13 am       (410049) CEF1750.pdf

Hinweis: Der Pfad sollte am Ende ein Platzhalter-Sternchen (*) enthalten, wenn der Schalterparameter -Include verwendet wird. Dieser Platzhalter gibt an, dass Sie alle untergeordneten Pfadelemente abfragen, die die spezifische Erweiterung haben, die im Parameter -Include definiert ist.

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Verwandter Artikel - PowerShell File

Verwandter Artikel - PowerShell Directory