Filtrer les fichiers et les dossiers à l'aide de PowerShell

Marion Paul Kenneth Mendoza 30 janvier 2023
  1. Filtrer les fichiers à l’aide de la cmdlet Get-ChildItem dans PowerShell
  2. l’alias Get-ChildItem
  3. Obtenir tous les fichiers dans les sous-répertoires à l’aide de la cmdlet Get-ChildItem dans PowerShell
  4. Filtrer les fichiers avec des conditions spécifiques à l’aide de la cmdlet Get-ChildItem dans PowerShell
Filtrer les fichiers et les dossiers à l'aide de PowerShell

Il y aura des situations dans lesquelles nous devrons vérifier si des fichiers existent dans un emplacement ou un répertoire spécifique. Bien que nous puissions utiliser la commande héritée dir, il ne suffirait pas d’exporter uniquement des fichiers spécifiques. Nous pouvons utiliser la cmdlet Get-ChildItem de Windows PowerShell pour ce cas d’utilisation.

Cet article traite de la cmdlet PowerShell Get-ChildItem que nous utiliserons pour obtenir tous les éléments du répertoire et utiliser ses paramètres de commutation de filtre.

la cmdlet Windows PowerShell Get-ChildItem obtient les éléments enfants dans un emplacement ou un répertoire spécifique. Par exemple, l’emplacement spécifié dans la cmdlet peut être le répertoire du système de fichiers, le registre ou le magasin de certificats. En outre, les éléments enfants mentionnés peuvent être un autre répertoire, sous-dossier ou fichier.

Get-ChildItem -Path C:\Temp

Dans la commande ci-dessus, Get-ChildItem récupère les éléments enfants du chemin spécifié à l’aide du paramètre -Path.

la cmdlet Get-ChildItem lorsqu’elle est exécutée, affiche les fichiers, les répertoires avec leurs propriétés Mode, LastWriteTime, Length (taille du fichier) et Name sur la console PowerShell.

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

Filtrer les fichiers à l’aide de la cmdlet Get-ChildItem dans PowerShell

Nous pouvons utiliser le paramètre de commutateur -File pour ne renvoyer que les fichiers à l’intérieur d’un chemin ou d’un répertoire.

Exemple de code :

Get-ChildItem -Path C:\Temp -File

Production :

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

l’alias Get-ChildItem

Windows PowerShell utilise un alias intégré par défaut gci pour la cmdlet Get-ChildItem. Comme dans l’extrait d’exemple ci-dessous, vous pouvez utiliser l’alias au lieu de la cmdlet pour un script plus rapide et transparent.

Exemple de code :

gci -Path C:\Temp -File

Obtenir tous les fichiers dans les sous-répertoires à l’aide de la cmdlet Get-ChildItem dans PowerShell

Si nous voulons obtenir tous les fichiers du répertoire et des sous-répertoires, utilisez le paramètre de commutateur -Recurse.

Exemple de code :

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

Remarque : Le paramètre -Force permet à la cmdlet d’obtenir des éléments auxquels l’utilisateur ne peut pas accéder autrement, tels que des fichiers système ou des fichiers cachés. Le paramètre Force ne remplace pas les restrictions de sécurité. La mise en œuvre varie selon les fournisseurs.

Filtrer les fichiers avec des conditions spécifiques à l’aide de la cmdlet Get-ChildItem dans PowerShell

En utilisant le paramètre -Filter, nous pouvons filtrer les résultats en utilisant une seule expression. Le paramètre -Filter ne nécessite pas le paramètre -Path car il utilisera votre répertoire de travail actuel.

Exemple de code :

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

Nous pouvons également utiliser les paramètres de commutateur -Include, qui acceptent plusieurs conditions, un excellent avantage par rapport au paramètre -Filter. Cependant, rappelez-vous que le paramètre -Include nécessite que le paramètre -Path soit présent dans l’expression.

Exemple de code :

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

En plus d’accepter plusieurs conditions, le paramètre -Include fonctionne bien avec regex, ce qui en fait une méthode plus polyvalente que le paramètre -Filter.

Production :

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

Remarque : Le chemin doit inclure un astérisque générique (*) à la fin lors de l’utilisation du paramètre de commutateur -Include. Ce caractère générique indique que vous interrogez tous les éléments enfants de chemin ayant l’extension spécifique définie dans le paramètre -Include.

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

Article connexe - PowerShell File

Article connexe - PowerShell Directory