Recherche de site Web

Récupérer tous les fichiers du répertoire de manière récursive dans PowerShell


Dans PowerShell, le répertoire peut être récupéré de manière récursive à l'aide de l'applet de commande Get-ChildItem et du paramètre -Recurse.

Utilisez Get-ChildItem avec Select-Object :

Get-ChildItem -Path "D:\Content Writing" -Recurse

Sortir :

    Directory: D:\Content Writing

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        09-04-2023     16:57                test1
d-----        09-04-2023     16:58                test2

    Directory: D:\Content Writing\test1

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        09-04-2023     16:57              7 file1.md
-a----        09-04-2023     16:57              7 file2.md
-a----        09-04-2023     16:57              7 file3.md

    Directory: D:\Content Writing\Directory\test2

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        09-04-2023     16:57              7 file4.md
-a----        09-04-2023     16:57              7 file5.md

Si vous souhaitez obtenir tous les fichiers du répertoire actuel dans PowerShell, vous pouvez utiliser la commande ci-dessous :

Utilisez Get-ChildItem avec Select-Object :

Get-ChildItem -Recurse

Les dossiers et fichiers peuvent également être exclus à l'aide du paramètre -Exclude.

Tout d’abord, jetez un œil à l’objectif des paramètres et des applets de commande qui seront utilisés à différentes fins dans cet article :

  • L'applet de commande Get-ChildItem dans PowerShell récupère un répertoire récursif et une liste de fichiers.
  • -Recurse est utilisé pour récupérer le répertoire de manière récursive, ce qui signifie que tous les fichiers, dossiers et sous-dossiers seront récupérés.
  • Utilisez le paramètre -Exclude pour exclure des fichiers et des dossiers spécifiques. Vous pouvez modifier le paramètre -Exclude pour inclure plusieurs noms de fichiers et de dossiers en les séparant par des virgules
  • L'applet de commande Select-Object affiche uniquement la propriété FullName de chaque élément, qui est le chemin complet du fichier ou du dossier.

Plongeons dans les exemples pour apprendre l'utilisation de chaque applet de commande et les paramètres discutés ci-dessus.

Utilisation de l'applet de commande Get-ChildItem

Nous pouvons utiliser l'applet de commande Get-ChildItem pour effectuer les opérations suivantes :

  • Pour récupérer le répertoire de manière récursive
  • Pour exclure un fichier spécifique d'un répertoire
  • Pour exclure un dossier particulier d'un répertoire
  • Pour exclure des fichiers du même type ou de la même extension d'un répertoire

Consultez les exemples suivants pour en savoir plus.

Utilisez Get-ChildItem avec le paramètre -Recurse et l'applet de commande Select-Object pour récupérer un répertoire de manière récursive.

Utilisez Get-ChildItem avec Select-Object :

Get-ChildItem -Path "D:\Content Writing" -Recurse | Select-Object FullName

Sortir :

FullName
--------
D:\Content Writing\test1
D:\Content Writing\test2
D:\Content Writing\test1\file1.md
D:\Content Writing\test1\file2.md
D:\Content Writing\test1\file3.md
D:\Content Writing\test2\file4.md
D:\Content Writing\test2\file5.md

Utilisez Get-ChildItem avec les paramètres -Recurse et -Exclude et la cmdlet Select-Object pour récupérer le compléter le dossier et ses sous-dossiers de manière récursive mais en excluant le fichier file1.txt.

Utilisez Get-ChildItem avec Select-Object :

Get-ChildItem -Path "D:\Content Writing" -Recurse -Exclude "file1.md" | Select-Object FullName

Sortir :

FullName
--------
D:\Content Writing\test1
D:\Content Writing\test2
D:\Content Writing\test1\file2.md
D:\Content Writing\test1\file3.md
D:\Content Writing\test2\file4.md
D:\Content Writing\test2\file5.md

Utilisez Get-ChildItem avec les paramètres -Recurse et -Exclude et la cmdlet Select-Object pour récupérer le dossier complet et ses sous-dossiers de manière récursive mais en excluant le dossier test2.

Utilisez Get-ChildItem avec Select-Object :

Get-ChildItem -Path "D:\folder" -Recurse -Exclude "test2" | Select-Object FullName

Sortir :

FullName
--------
D:\Content Writing\test1
D:\Content Writing\test1\file1.md
D:\Content Writing\test1\file2.md
D:\Content Writing\test1\file3.md
D:\Content Writing\test2\file4.md
D:\Content Writing\test2\file5.md

La commande ci-dessus exclura le dossier spécifié, pas ses sous-dossiers ou fichiers. Comme vous pouvez le voir, nous avons récupéré l'emplacement des fichiers file4.docx et file5.docx du dossier test2 mais pas du dossier test2 lui-même.

Utilisez Get-ChildItem avec les paramètres -Recurse et -Exclude et la cmdlet Select-Object pour récupérer le compléter le dossier et ses sous-dossiers de manière récursive mais en excluant les fichiers du même type ou de la même extension.

Utilisez Get-ChildItem avec Select-Object :

Get-ChildItem -Path "D:\Content Writing" -Recurse -Exclude *.md | Select-Object FullName

Sortir :

D:\Content Writing\test1
D:\Content Writing\test2

Il s’agit de savoir comment obtenir tous les fichiers du répertoire de manière récursive dans PowerShell.

Articles connexes