Get-ChildItem

Obtient les éléments et les éléments enfants dans un ou plusieurs emplacements spécifiés

Syntax

Get-ChildItem
   [[-Path] <string[]>]
   [[-Filter] <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-FollowSymlink]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]
Get-ChildItem
   [[-Filter] <string>]
   -LiteralPath <string[]>
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-FollowSymlink]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]

Description

L’applet Get-ChildItem de commande obtient les éléments dans un ou plusieurs emplacements spécifiés. Si l’élément est un conteneur, elle obtient les éléments qui se trouvent à l’intérieur du conteneur, appelés éléments enfants. Vous pouvez utiliser le paramètre Recurse pour obtenir des éléments dans tous les conteneurs enfants et utiliser le paramètre Depth pour limiter le nombre de niveaux à récurser.

Get-ChildItem n’affiche pas les répertoires vides. Lorsqu’une Get-ChildItem commande inclut les paramètres De profondeur ou de récursivité , les répertoires vides ne sont pas inclus dans la sortie.

Les emplacements sont exposés Get-ChildItem par les fournisseurs PowerShell. Un emplacement peut être un répertoire de système de fichiers, une ruche de Registre ou un magasin de certificats. Pour plus d'informations, consultez about_Providers.

Exemples

Exemple 1 : Obtenir des éléments enfants à partir d’un répertoire de système de fichiers

Cet exemple obtient les éléments enfants à partir d’un répertoire de système de fichiers. Les noms de noms de fichiers et de sous-répertoires sont affichés. Pour les emplacements vides, la commande ne retourne aucune sortie et retourne à l’invite PowerShell.

L’applet Get-ChildItem de commande utilise le paramètre Path pour spécifier le répertoire C:\Test. Get-ChildItem affiche les fichiers et répertoires dans la console PowerShell.

Get-ChildItem -Path C:\Test

Directory: C:\Test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/15/2019     08:29                Logs
-a----        2/13/2019     08:55             26 anotherfile.txt
-a----        2/12/2019     15:40         118014 Command.txt
-a----         2/1/2019     08:43            183 CreateTestFile.ps1
-ar---        2/12/2019     14:31             27 ReadOnlyFile.txt

Par défaut Get-ChildItem , le mode (Attributs), LastWriteTime, la taille du fichier (Length) et le nom de l’élément. Les lettres de la propriété Mode peuvent être interprétées comme suit :

  • l (lien)
  • d (répertoire)
  • a (archive)
  • r (en lecture seule)
  • h (masqué)
  • s (système).

Pour plus d’informations sur les indicateurs de mode, consultez about_Filesystem_Provider.

Exemple 2 : Obtenir des noms d’éléments enfants dans un répertoire

Cet exemple répertorie uniquement les noms d’éléments d’un répertoire.

L’applet Get-ChildItem de commande utilise le paramètre Path pour spécifier le répertoire C:\Test. Le paramètre Name retourne uniquement les noms de fichiers ou de répertoires à partir du chemin d’accès spécifié.

Get-ChildItem -Path C:\Test -Name

Logs
anotherfile.txt
Command.txt
CreateTestFile.ps1
ReadOnlyFile.txt

Exemple 3 : Obtenir des éléments enfants dans le répertoire actuel et les sous-répertoires

Cet exemple montre comment afficher.txt fichiers situés dans le répertoire actuel et ses sous-répertoires.

Get-ChildItem -Path C:\Test\*.txt -Recurse -Force

Directory: C:\Test\Logs\Adirectory

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/12/2019     16:16             20 Afile4.txt
-a-h--        2/12/2019     15:52             22 hiddenfile.txt
-a----        2/13/2019     13:26             20 LogFile4.txt

    Directory: C:\Test\Logs\Backup

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/12/2019     16:16             20 ATextFile.txt
-a----        2/12/2019     15:50             20 LogFile3.txt

    Directory: C:\Test\Logs

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/12/2019     16:16             20 Afile.txt
-a-h--        2/12/2019     15:52             22 hiddenfile.txt
-a----        2/13/2019     13:26             20 LogFile1.txt

    Directory: C:\Test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/13/2019     08:55             26 anotherfile.txt
-a----        2/12/2019     15:40         118014 Command.txt
-a-h--        2/12/2019     15:52             22 hiddenfile.txt
-ar---        2/12/2019     14:31             27 ReadOnlyFile.txt

L’applet Get-ChildItem de commande utilise le paramètre Path pour spécifier C:\Test\*.txt. Le chemin d’accès utilise le caractère générique () astérisque pour* spécifier tous les fichiers avec l’extension .txtde nom de fichier . Le paramètre Récurse recherche le répertoire Path de ses sous-répertoires, comme indiqué dans les titres Répertoire : titres. Le paramètre Force affiche les fichiers masqués tels que hiddenfile.txt ceux qui ont un mode h.

Exemple 4 : Obtenir des éléments enfants à l’aide du paramètre Include

Dans cet exemple, l’exemple Get-ChildItem utilise le paramètre Include pour rechercher des éléments spécifiques à partir du répertoire spécifié par le paramètre Path .

# When using the -Include parameter, if you don't include an asterisk in the path
# the command returns no output.
Get-ChildItem -Path C:\Test\ -Include *.txt



Get-ChildItem -Path C:\Test\* -Include *.txt

Directory: C:\Test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2/13/2019     08:55             26 anotherfile.txt
-a----        2/12/2019     15:40         118014 Command.txt
-ar---        2/12/2019     14:31             27 ReadOnlyFile.txt

L’applet Get-ChildItem de commande utilise le paramètre Path pour spécifier le répertoire C:\Test. Le paramètre Path inclut un caractère générique astérisque (*) de fin pour spécifier le contenu du répertoire. Le paramètre Include utilise un caractère générique astérisque (*) pour spécifier tous les fichiers avec l’extension de nom de fichier .txt.

Lorsque le paramètre Include est utilisé, le paramètre Path a besoin d’un caractère générique astérisque (*) de fin pour spécifier le contenu du répertoire. Par exemple : -Path C:\Test\*.

  • Si le paramètre Recurse est ajouté à la commande, l’astérisque de fin (*) dans le paramètre Path est facultatif. Le paramètre récurseur obtient des éléments du répertoire Path et de ses sous-répertoires. Par exemple : -Path C:\Test\ -Recurse -Include *.txt
  • Si un astérisque de fin (*) n’est pas inclus dans le paramètre Path , la commande ne retourne aucune sortie et retourne à l’invite PowerShell. Par exemple : -Path C:\Test\.

Exemple 5 : Obtenir des éléments enfants à l’aide du paramètre Exclude

La sortie de l’exemple montre le contenu du répertoire C:\Test\Logs. La sortie est une référence pour les autres commandes qui utilisent les paramètres Exclude et Recurse .

Get-ChildItem -Path C:\Test\Logs

Directory: C:\Test\Logs

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/15/2019     13:21                Adirectory
d-----        2/15/2019     08:28                AnEmptyDirectory
d-----        2/15/2019     13:21                Backup
-a----        2/12/2019     16:16             20 Afile.txt
-a----        2/13/2019     13:26             20 LogFile1.txt
-a----        2/12/2019     16:24             23 systemlog1.log

Get-ChildItem -Path C:\Test\Logs\* -Exclude A*

Directory: C:\Test\Logs

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/15/2019     13:21                Backup
-a----        2/13/2019     13:26             20 LogFile1.txt
-a----        2/12/2019     16:24             23 systemlog1.log

L’applet Get-ChildItem de commande utilise le paramètre Path pour spécifier le répertoire C:\Test\Logs. Le paramètre Exclude utilise le caractère générique astérisque (*) pour spécifier tous les fichiers ou répertoires qui commencent par A ou a sont exclus de la sortie.

Lorsque le paramètre Exclude est utilisé, un astérisque de fin (*) dans le paramètre Path est facultatif. Par exemple, -Path C:\Test\Logs ou -Path C:\Test\Logs\*.

  • Si un astérisque de fin (*) n’est pas inclus dans le paramètre Path , le contenu du paramètre Path s’affiche. Les exceptions sont des noms de fichiers ou de sous-répertoires qui correspondent à la valeur du paramètre Exclude .
  • Si un astérisque de fin (*) est inclus dans le paramètre Path , la commande récursère dans les sous-répertoires du paramètre Path . Les exceptions sont des noms de fichiers ou de sous-répertoires qui correspondent à la valeur du paramètre Exclude .
  • Si le paramètre Recurse est ajouté à la commande, la sortie de récursion est identique si le paramètre Path inclut un astérisque de fin (*).

Exemple 6 : Obtenir les clés de Registre à partir d’une ruche de Registre

Cet exemple obtient toutes les clés de Registre à partir de HKEY_LOCAL_MACHINE\HARDWARE.

Get-ChildItem utilise le paramètre Path pour spécifier la clé HKLM:\HARDWAREde Registre . Le chemin d’accès et le niveau supérieur des clés de Registre sont affichés dans la console PowerShell.

Pour plus d’informations, consultez about_Registry_Provider.

Get-ChildItem -Path HKLM:\HARDWARE

Hive: HKEY_LOCAL_MACHINE\HARDWARE

Name             Property
----             --------
ACPI
DESCRIPTION
DEVICEMAP
RESOURCEMAP
UEFI

Get-ChildItem -Path HKLM:\HARDWARE -Exclude D*

Hive: HKEY_LOCAL_MACHINE\HARDWARE

Name                           Property
----                           --------
ACPI
RESOURCEMAP

La première commande affiche le contenu de la HKLM:\HARDWARE clé de Registre. Le paramètre Exclude indique Get-ChildItem de ne pas retourner les sous-clés qui commencent par D*. Actuellement, le paramètre Exclude fonctionne uniquement sur les sous-clés, et non sur les propriétés d’élément.

Exemple 7 : Obtenir tous les certificats avec l’autorité de signature de code

Cet exemple obtient chaque certificat dans le certificat PowerShell : lecteur qui a l’autorité de signature de code.

L’applet Get-ChildItem de commande utilise le paramètre Path pour spécifier le fournisseur Cert : Le paramètre recurse recherche le répertoire spécifié par Path et ses sous-répertoires. Le paramètre CodeSigningCert obtient uniquement les certificats qui ont l’autorité de signature de code.

Get-ChildItem -Path Cert:\* -Recurse -CodeSigningCert

Pour plus d’informations sur le fournisseur de certificats et le lecteur Cert: , consultez about_Certificate_Provider.

Exemple 8 : Obtenir des éléments à l’aide du paramètre Depth

Cet exemple montre comment afficher les éléments d’un répertoire et ses sous-répertoires. Le paramètre Depth détermine le nombre de niveaux de sous-répertoire à inclure dans la récursion. Les répertoires vides sont exclus de la sortie.

Get-ChildItem -Path C:\Parent -Depth 2

Directory: C:\Parent

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/14/2019     10:24                SubDir_Level1
-a----        2/13/2019     08:55             26 file.txt

    Directory: C:\Parent\SubDir_Level1

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/14/2019     10:24                SubDir_Level2
-a----        2/13/2019     08:55             26 file.txt

    Directory: C:\Parent\SubDir_Level1\SubDir_Level2

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2/14/2019     10:22                SubDir_Level3
-a----        2/13/2019     08:55             26 file.txt

L’applet Get-ChildItem de commande utilise le paramètre Path pour spécifier C:\Parent. Le paramètre Depth spécifie deux niveaux de récursivité. Get-ChildItem affiche le contenu du répertoire spécifié par le paramètre Path et les deux niveaux de sous-répertoires.

Exemple 9 : Obtention d’informations de lien dur

Dans PowerShell 6.2, une autre vue a été ajoutée pour obtenir des informations de lien dur.

Get-ChildItem -Path C:\PathContainingHardLink | Format-Table -View childrenWithHardLink

Paramètres

-Attributes

Obtient les fichiers et les dossiers avec les attributs spécifiés. Ce paramètre prend en charge tous les attributs et vous permet de spécifier des combinaisons complexes d'attributs.

Par exemple, pour obtenir les fichiers non-système (pas les répertoires) qui sont chiffrés ou compressés, tapez :

Get-ChildItem -Attributes !Directory+!System+Encrypted, !Directory+!System+Compressed

Pour rechercher des fichiers et des dossiers avec des attributs couramment utilisés, utilisez le paramètre Attributes . Ou, le répertoire, le fichier, le fichier, le fichier masqué, readOnly et le système.

Le paramètre Attributes prend en charge les propriétés suivantes :

  • Archive
  • Compressed
  • Appareil
  • Directory
  • Chiffré
  • Hidden
  • IntegrityStream
  • Normal
  • NoScrubData
  • NotContentIndexed
  • Hors connexion
  • Lecture seule
  • RéparsePoint
  • SparseFile
  • Système
  • Temporaire

Pour obtenir une description de ces attributs, consultez l’énumération FileAttributes.

Pour combiner des attributs, utilisez les opérateurs suivants :

  • ! (NOT)
  • + (AND)
  • , (OR)

N’utilisez pas d’espaces entre un opérateur et son attribut. Les espaces sont acceptés après des virgules.

Pour les attributs courants, utilisez les abréviations suivantes :

  • D (Répertoire)
  • H (Masqué)
  • R (Lecture seule)
  • S (Système)
Type:FlagsExpression<T>[FileAttributes]
Accepted values:Archive, Compressed, Device, Directory, Encrypted, Hidden, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Depth

Ce paramètre a été ajouté dans PowerShell 5.0 et vous permet de contrôler la profondeur de la récursivité. Par défaut, Get-ChildItem affiche le contenu du répertoire parent. Le paramètre Depth détermine le nombre de niveaux de sous-répertoire inclus dans la récursivité et affiche le contenu.

Par exemple, Depth 2 inclut le répertoire du paramètre Path , le premier niveau des sous-répertoires et le deuxième niveau de sous-répertoires. Par défaut, les noms de répertoires et les noms de fichiers sont inclus dans la sortie.

Notes

Sur un ordinateur Windows à partir de PowerShell ou decmd.exe, vous pouvez afficher une vue graphique d’une structure de répertoires avec la commande tree.com .

Type:UInt32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Directory

Pour obtenir la liste des répertoires, utilisez le paramètre Directory ou le paramètre Attributes avec la propriété Directory . Vous pouvez utiliser le paramètre Récursivité avec Directory.

Type:SwitchParameter
Aliases:ad, d
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

Spécifie, en tant que tableau de chaînes, une propriété ou une propriété que cette applet de commande exclut de l’opération. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d’accès, tel que *.txt ou A*. Les caractères génériques sont acceptés.

Un astérisque de fin (*) dans le paramètre Path est facultatif. Par exemple, -Path C:\Test\Logs ou -Path C:\Test\Logs\*. Si un astérisque de fin (*) est inclus, la commande se récursère dans les sous-répertoires du paramètre Path . Sans astérisque (*), le contenu du paramètre Path s’affiche. Pour plus d’informations, consultez l’exemple 5 et la section Notes.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-File

Pour obtenir la liste des fichiers, utilisez le paramètre File . Vous pouvez utiliser le paramètre Recurse avec File.

Type:SwitchParameter
Aliases:af
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Filter

Spécifie un filtre pour qualifier le paramètre Path . Le fournisseur FileSystem est le seul fournisseur PowerShell installé qui prend en charge les filtres. Les filtres sont plus efficaces que d’autres paramètres. Le fournisseur applique un filtre lorsque l’applet de commande obtient les objets plutôt que d’avoir PowerShell à filtrer les objets après leur récupération. La chaîne de filtre est passée à l’API .NET pour énumérer les fichiers. L’API prend uniquement en charge * et ? les caractères génériques.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Par défaut, l’applet Get-ChildItem de commande affiche des liens symboliques vers des répertoires trouvés pendant la récursivité, mais ne les récurse pas. Utilisez le paramètre FollowSymlink pour rechercher les répertoires qui ciblent ces liens symboliques. FollowSymlink est un paramètre dynamique et est pris en charge uniquement dans le fournisseur FileSystem.

Ce paramètre a été introduit dans PowerShell 6.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Permet à l’applet de commande d’obtenir des éléments qui, sinon, ne sont pas accessibles par l’utilisateur, tels que les fichiers masqués ou système. Le paramètre Force ne remplace pas les restrictions de sécurité. L’implémentation est différente d’un fournisseur à l’autre. Pour plus d'informations, consultez about_Providers.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Hidden

Pour obtenir uniquement les éléments masqués, utilisez le paramètre Hidden ou le paramètre Attributes avec la propriété Hidden . Par défaut, Get-ChildItem n’affiche pas les éléments masqués. Utilisez le paramètre Force pour obtenir des éléments masqués.

Type:SwitchParameter
Aliases:ah, h
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

Spécifie, en tant que tableau de chaînes, un élément ou des éléments inclus dans cette applet de commande dans l’opération. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d’accès, tel que "*.txt". Les caractères génériques sont autorisés. Le paramètre Include est effectif uniquement lorsque la commande inclut le contenu d’un élément, par exemple C:\Windows\*, où le caractère générique spécifie le contenu du C:\Windows répertoire.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-LiteralPath

Spécifie un chemin d’accès à un ou plusieurs emplacements. La valeur de LiteralPath est utilisée exactement comme elle est typée. Aucun caractère n’est interprété en tant que caractère générique. Si le chemin d’accès inclut des caractères d’échappement, mettez-le entre des guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter les caractères comme des séquences d’échappement.

Pour plus d’informations, consultez about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Obtient uniquement les noms des éléments à l’emplacement. La sortie est un objet de chaîne qui peut être envoyé vers le bas du pipeline à d’autres commandes. Les caractères génériques sont autorisés.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Path

Spécifie un chemin d’accès à un ou plusieurs emplacements. Les caractères génériques sont acceptés. L’emplacement par défaut est le répertoire actif (.).

Type:String[]
Position:0
Default value:Current directory
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-ReadOnly

Pour obtenir uniquement des éléments en lecture seule, utilisez le paramètre ReadOnly ou la propriété ReadOnly du paramètre Attributes.

Type:SwitchParameter
Aliases:ar
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Recurse

Obtient les éléments aux emplacements spécifiés, de même que dans tous les éléments enfants de ces emplacements.

Type:SwitchParameter
Aliases:s
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-System

Obtient uniquement les fichiers système et les répertoires. Pour obtenir uniquement des fichiers système et des dossiers, utilisez la propriété System parameter ou AttributesSystem .

Type:SwitchParameter
Aliases:as
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

String

Vous pouvez diriger une chaîne qui contient un chemin d’accès Get-ChildItem.

Sorties

Object

Le type d’objet retourné Get-ChildItem est déterminé par les objets du chemin d’accès du lecteur du fournisseur.

String

Si vous utilisez le paramètre Name , Get-ChildItem retourne les noms d’objets sous forme de chaînes.

Notes

  • Get-ChildItempeut être exécuté à l’aide de l’un des alias intégrés, ls, et dirgci. Pour plus d’informations, consultez about_Aliases.
  • Get-ChildItem n’obtient pas d’éléments masqués par défaut. Pour obtenir des éléments cachés, utilisez le paramètre Force.
  • L’applet Get-ChildItem de commande est conçue pour fonctionner avec les données exposées par n’importe quel fournisseur. Pour répertorier les fournisseurs disponibles dans votre session, tapez Get-PSProvider. Pour plus d'informations, consultez about_Providers.