Partager via


Get-ChildItem

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

Syntaxe

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

Description

L’applet de commande Get-ChildItem obtient les éléments dans un ou plusieurs emplacements spécifiés. Si l’élément est un conteneur, il obtient les éléments à 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 de répertoires vides. Lorsqu’une commande inclut les paramètres de de profondeur de ou de récursivité, les répertoires vides ne sont pas inclus dans la sortie.

Les emplacements sont exposés aux 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 fichiers et les noms de sous-répertoire sont affichés. Pour les emplacements vides, la commande ne retourne aucune sortie et retourne à l’invite PowerShell.

L’applet de commande utilise le paramètre Path pour spécifier le répertoire . 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 répertorie le mode (Attributes), LastWriteTime, la taille du fichier (Length) et le nom de l’élément. Les lettres de la propriété mode peuvent être entrelacées comme suit :

  • l (lien)
  • d (répertoire)
  • a (archive)
  • r (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

Cette commande répertorie uniquement les noms d’éléments d’un répertoire.

L’applet de commande utilise le paramètre Path pour spécifier le répertoire . Le paramètre Name retourne uniquement les noms de fichiers ou de répertoires 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 actif et les sous-répertoires

Cet exemple montre comment afficher .txt fichiers situés dans le répertoire actif 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 de commande utilise le paramètre Path pour spécifier . Path utilise le caractère générique astérisque (*) pour spécifier tous les fichiers avec l’extension de nom de fichier .txt. Le paramètre Recurse recherche dans le répertoire chemin d’accès ses sous-répertoires, comme indiqué dans le répertoire : titres. Le paramètre Forcer affiche des fichiers masqués tels que hiddenfile.txt qui ont un mode de h.

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

Dans cet exemple, 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 do not 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 de commande utilise le paramètre Path pour spécifier le répertoire C :\Test. Le paramètre Path inclut un astérisque de fin (*) générique 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 astérisque de fin (*) générique 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 Recurse obtient les éléments du répertoire chemin d’accès 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 de commande utilise le paramètre Path pour spécifier le répertoire . Le paramètre Exclude utilise le caractère générique astérisque (*) pour spécifier les fichiers ou répertoires commençant par A ou un sont exclus de la sortie.

Lorsque le paramètre Exclure 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 des sous-répertoires qui correspondent à la valeur de Exclure paramètre.
  • Si un astérisque de fin () est inclus dans le paramètre Path, la commande récurse dans les sous-répertoires du paramètre Path . Les exceptions sont des noms de fichiers ou des sous-répertoires qui correspondent à la valeur de Exclure paramètre.
  • Si le paramètre Recurse est ajouté à la commande, la sortie de récursivité 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

Cette commande obtient toutes les clés de Registre de la clé de Registre HKEY_LOCAL_MACHINE\HARDWARE.

utilise le paramètre path pour spécifier la clé de 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 clé de Registre HKLM:\HARDWARE. Le paramètre Exclure indique Get-ChildItem de ne pas retourner de sous-clés qui commencent par D*. Actuellement, le paramètre Exclure 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

Cette commande obtient chaque certificat dans powerShell certificat : lecteur disposant d’une autorité de signature de code.

L’applet de commande utilise le paramètre Path pour spécifier le certificat : fournisseur. 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 une 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

Cette commande affiche les éléments d’un répertoire et de ses sous-répertoires. Le paramètre Depth détermine le nombre de niveaux de sous-répertoire à inclure dans la récursivité. 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 de commande utilise le paramètre Path pour spécifier C :\Parent. Le paramètre Depth spécifie deux niveaux de récursivité. affiche le contenu du répertoire spécifié par le paramètre Path et les deux niveaux de sous-répertoires.

Paramètres

-Attributes

Obtient des fichiers et des 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 des fichiers non système (et non des répertoires) 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 Attributs. Ou, les paramètres répertoire, fichier, masqué, readOnlyet système.

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

  • Archiver
  • compressé
  • appareil
  • répertoire
  • chiffrée
  • masqué
  • IntegrityStream
  • normal
  • NoScrubData
  • NotContentIndexed
  • hors connexion
  • ReadOnly
  • ReparsePoint
  • 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 les 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]
Valeurs acceptées:Archive, Compressed, Device, Directory, Encrypted, Hidden, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Depth

Ce paramètre a été ajouté dans PowerShell 5.0 et vous permet de contrôler la profondeur de 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 Path paramètre, 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.

Note

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

Type:UInt32
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Directory

Pour obtenir la liste des répertoires, utilisez le paramètre répertoire ou les attributs avec la propriété répertoire . Vous pouvez utiliser le paramètre recurse avec répertoire.

Type:SwitchParameter
Alias:ad, d
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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 est récursitée dans les sous-répertoires du paramètre Path. Sans astérisque (*), le contenu du paramètre Path s’affiche. Vous trouverez plus d’informations dans l’exemple 5 et la section Notes.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-File

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

Type:SwitchParameter
Alias:af
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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 l’utilisation de filtres. Les filtres sont plus efficaces que d’autres paramètres, car le fournisseur les applique lorsque l’applet de commande obtient les objets plutôt que de filtrer les objets après leur récupération. La chaîne de filtre est transmise à l’API .NET pour énumérer les fichiers. Cette API prend uniquement en charge les caractères génériques * et ?.

Type:String
Position:1
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-Force

Permet à l’applet de commande d’obtenir des éléments qui ne peuvent pas être accessibles autrement par l’utilisateur, tels que les fichiers masqués ou système. Le paramètre Forcer ne remplace pas les restrictions de sécurité. L’implémentation varie entre les fournisseurs. Pour plus d’informations, consultez about_Providers.

Type:SwitchParameter
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Hidden

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

Type:SwitchParameter
Alias:ah, h
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Include

Spécifie, sous la forme d’un tableau de chaînes, un élément ou des éléments inclus 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 n’est effectif que lorsque la commande inclut le contenu d’un élément, tel que , où le caractère générique spécifie le contenu du répertoire .

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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é comme des caractères génériques. Si le chemin inclut des caractères d’échappement, placez-le entre guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme séquences d’échappement.

Pour plus d’informations, consultez about_Quoting_Rules.

Type:String[]
Alias:PSPath
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Name

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

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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
Valeur par défaut:Current directory
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:True

-ReadOnly

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

Type:SwitchParameter
Alias:ar
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Recurse

Obtient les éléments dans les emplacements spécifiés et dans tous les éléments enfants des emplacements.

Type:SwitchParameter
Alias:s
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-System

Obtient uniquement les fichiers système et les répertoires. Pour obtenir uniquement des fichiers et dossiers système, utilisez le paramètre système ou les attributs paramètre propriété System.

Type:SwitchParameter
Alias:as
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-UseTransaction

Inclut la commande dans la transaction active. Ce paramètre est valide uniquement lorsqu’une transaction est en cours. Pour plus d’informations, consultez about_Transactions.

Type:SwitchParameter
Alias:usetx
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques: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

  • Vous pouvez faire référence à Get-ChildItem par ses alias intégrés, ls, diret gci. Pour plus d’informations, consultez about_Aliases.
  • Get-ChildItem n’obtient pas les éléments masqués par défaut. Pour obtenir des éléments masqués, utilisez le paramètre force .
  • L’applet de commande Get-ChildItem 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.