Comment trouver des fichiers avec une extension dans PowerShell

  1. Utiliser Get-ChildItem Avec Filter pour Trouver des Fichiers Avec Extension dans PowerShell
  2. Utiliser Get-ChildItem Avec Include pour Trouver des Fichiers Avec Extensions dans PowerShell
  3. Conclusion
Comment trouver des fichiers avec une extension dans PowerShell

PowerShell est un outil polyvalent et puissant pour gérer les fichiers et les répertoires sur votre ordinateur. Une tâche courante consiste à trouver des fichiers avec des extensions spécifiques.

Dans cet article, nous allons explorer les méthodes pour localiser efficacement des fichiers avec des extensions particulières en utilisant la cmdlet Get-ChildItem dans PowerShell.

Utiliser Get-ChildItem Avec Filter pour Trouver des Fichiers Avec Extension dans PowerShell

La commande Get-ChildItem dans l’environnement PowerShell récupère un élément d’un emplacement spécifié. Un élément peut résider dans un conteneur, et un conteneur est généralement un dossier.

De plus, le Get-ChildItem utilise un paramètre -Recurse pour obtenir des éléments des conteneurs enfants ou sous-conteneurs. Il comprend également un paramètre -Filter qui utilise un astérisque (*) comme caractère générique pour obtenir tous les fichiers avec une extension spécifique.

Syntaxe :

Get-ChildItem -Path "File Path" -Recurse -File -Filter *.txt

Paramètres :

  • -Path "Chemin du Fichier" : Spécifie le répertoire de départ de la recherche, où nous rechercherons des extensions spécifiques.
  • -Recurse : Étend la recherche aux sous-répertoires, offrant une recherche complète.
  • -File : Se concentre sur les fichiers, et non sur les répertoires, garantissant que seuls les fichiers sont retournés.
  • -Filter *.txt : Définit le filtre pour les fichiers avec l’extension ".txt". L’astérisque (*) correspond à tout caractère avant ".txt".

Prenons un exemple. La commande suivante trouve tous les fichiers avec l’extension .txt.

Get-ChildItem "C:\Files\"  -Recurse -File -Filter *.txt

Dans la commande, nous commençons notre recherche en utilisant la cmdlet Get-ChildItem sur le répertoire "C:\Files", ce qui nous permet de collecter des informations sur les éléments, qu’il s’agisse de fichiers ou de répertoires, dans cet emplacement. Pour étendre notre recherche à tous les sous-répertoires également, nous incluons le paramètre -Recurse.

Ensuite, pour spécifier que nous sommes intéressés par des fichiers et non pas par des répertoires, nous ajoutons le paramètre -File. Enfin, nous définissons notre condition de filtre en utilisant -Filter *.txt, qui recherche des fichiers se terminant par ".txt" avec l’astérisque (*) servant de caractère générique pour correspondre à tous les caractères qui le précèdent.

De cette manière, nous donnons efficacement à PowerShell l’instruction de localiser tous les fichiers dont les noms se terminent par ".txt".

Sortie :

Directory: C:\Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:02 PM              0 file1.txt
-a----         5/15/2022  11:02 PM              0 file2.txt
-a----         5/15/2022  11:02 PM              0 file3.txt

    Directory: C:\Files\Misc files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:05 PM              0 file8.txt

    Directory: C:\Files\More Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:02 PM              0 file4.txt

    Directory: C:\Files\More Files\Some More Files

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         5/15/2022  11:03 PM              0 file6.txt

Nous pourrions ajouter le paramètre -Name à Get-ChildItem pour n’afficher que les chemins des fichiers plutôt qu’une sortie détaillée.

Get-ChildItem "C:\Files\"  -Recurse -File -Name -Filter *.txt

Sortie :

file1.txt
file2.txt
file3.txt
Misc files\file8.txt
More Files\file4.txt
More Files\Some More Files\file6.txt

Nous pouvons voir, dans la sortie, qu’elle ne montre que les noms et chemins des fichiers après avoir exécuté la commande avec le paramètre -Name.

Utiliser Get-ChildItem Avec Include pour Trouver des Fichiers Avec Extensions dans PowerShell

La commande Get-ChildItem utilise le paramètre -Include qui prend un ou plusieurs modèles de chaîne pour inclure les éléments correspondants.

Syntaxe :

Get-ChildItem "File Path" -Recurse -File -Name -Include *.txt
  • -Path "Chemin du Fichier" : Spécifie le répertoire de départ pour la recherche, où nous recherchons des fichiers d’une extension spécifique.
  • -Recurse : Étend la recherche à tous les sous-répertoires, garantissant une recherche complète.
  • -File : Se concentre exclusivement sur les fichiers, excluant les répertoires des résultats.
  • -Name : Énumère uniquement les noms de fichiers dans la sortie sans informations détaillées sur le fichier.
  • -Include *.txt : Filtre et récupère les fichiers avec l’extension ".txt" dans les résultats.

Ajouter un astérisque final (*) au chemin du fichier est nécessaire sans le drapeau -Recurse. Dans ce cas, il ne liste que les fichiers .txt dans le dossier Files.

Get-ChildItem "C:\Files\*" -File -Name -Include *.txt

Dans la commande, nous utilisons la cmdlet Get-ChildItem pour initier une recherche de fichiers dans le répertoire "C:\Files" et tous ses sous-répertoires. Pour cibler les fichiers avec une extension ".txt", nous appliquons une série de paramètres.

Nous commençons par définir le chemin avec "C:\Files\*", qui inclut tous les sous-répertoires sous "C:\Files". En ajoutant le paramètre -File, nous nous concentrons uniquement sur les fichiers, excluant ainsi les répertoires.

Le paramètre -Name affine notre sortie, affichant uniquement les noms des fichiers, tandis que le paramètre -Include *.txt peaufine la recherche en filtrant les fichiers avec l’extension ".txt".

Sortie :

file1.txt
file2.txt
file3.txt

La sortie représente une liste de noms de fichiers avec l’extension ".txt", qui correspondent aux critères que nous avons spécifiés dans notre commande PowerShell.

Conclusion

Dans cet article, nous avons exploré des méthodes efficaces pour utiliser la cmdlet Get-ChildItem dans PowerShell afin de localiser de tels fichiers. Nous avons couvert deux approches : l’utilisation du paramètre -Filter pour la précision et le paramètre -Include pour la flexibilité.

Ces techniques peuvent simplifier des tâches telles que l’analyse de données et l’organisation, rendant la gestion des fichiers dans un environnement Windows plus efficace.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous

Article connexe - PowerShell File