Get-ChildItem

Module : Microsoft.PowerShell.Management

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

Syntaxe

Get-ChildItem <string>] <string>] >] >] >] 
Get-ChildItem <string>] -LiteralPath <string> >] >] >] 

Description

Le cmdlet 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 Recurseparameter pour obtenir les éléments dans tous les conteneurs enfants et utiliser le paramètre Depth pour limiter le nombre de niveaux à récuser.

Get-ChildItem n’affiche pas les répertoires vides. Lorsqu’une commande Get-ChildItem comprend les paramètresDepth ou Recurse, 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, voir about_Providers.

Exemples

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

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

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

Get-ChildItem -Path C:\TestDirectory: C:\TestMode 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 liste 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 (lecture seule)
  • h (caché)
  • s (système).

Pour plus d’informations sur les drapeaux de mode, voirabout_Filesystem_Provider.

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

Cet exemple liste uniquement les noms des éléments dans un répertoire.

Le cmdlet Get-ChildItem utilise le paramètre Path pour spécifier le répertoire C:\Test. Le paramètreName renvoie uniquement les noms de fichiers ou de répertoires du chemin d’accès spécifié.

Get-ChildItem -Path C:\Test -NameLogsanotherfile.txtCommand.txtCreateTestFile.ps1ReadOnlyFile.txt

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

Cet exemple affiche les fichiers .txt qui sont situés dans le répertoire actuel et ses sous-répertoires.

Get-ChildItem -Path C:\Test\*.txt -Recurse -ForceDirectory: C:\Test\Logs\AdirectoryMode 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\BackupMode LastWriteTime Length Name---- ------------- ------ -----a---- 2/12/2019 16:16 20 ATextFile.txt-a---- 2/12/2019 15:50 20 LogFile3.txt Directory: C:\Test\LogsMode 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:\TestMode 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

Le cmdlet Get-ChildItem utilise le paramètre Path pour spécifier C:\Test\*.txt. Path utilise le caractère génériqueasterisk (*) pour spécifier tous les fichiers avec l’extension de nom de fichier .txt. Le paramètre Recurseparameter recherche dans le répertoire Path ses sous-répertoires, comme indiqué dans les rubriques Directory :. Le paramètre Force affiche les fichiers cachés tels que hiddenfile.txt qui ont un modeof h.

Exemple 4 : Obtenir des éléments enfants en utilisant le paramètre Include

Dans cet exemple, Get-ChildItem utilise le paramètre Include pour trouver des éléments spécifiques 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 *.txtGet-ChildItem -Path C:\Test\* -Include *.txtDirectory: C:\TestMode 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

Le cmdlet Get-ChildItem utilise le paramètre Path pour spécifier le répertoire C:\Test. Le paramètrePath comprend un caractère générique d’astérisque (*) de fin pour spécifier le contenu du répertoire.Le paramètre Include utilise un caractère générique d’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 d’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 Recurse récupère les é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 renvoie aucun résultat 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\LogsDirectory: C:\Test\LogsMode LastWriteTime Length Name---- ------------- ------ ----d----- 2/15/2019 13:21 Adirectoryd----- 2/15/2019 08:28 AnEmptyDirectoryd----- 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.logGet-ChildItem -Path C:\Test\Logs\* -Exclude A*Directory: C:\Test\LogsMode 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

Le cmdlet Get-ChildItem 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 queue (*) dans le paramètre Path estoptionnel. 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 est affiché. Les exceptions sont les noms de fichiers ou de sous-répertoires qui correspondent à la valeur du paramètreExclude.
  • Si un astérisque de fin (*) est inclus dans le paramètre Path, la commande récure dans les sous-répertoires du paramètrePath. Les exceptions sont les 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 la même, que le paramètre Path comprenne ou non un astérisque de fin (*).

Exemple 6 : Obtenir les clés de registre d’une ruche de registre

Cet exemple obtient toutes les clés de registre de HKEY_LOCAL_MACHINE\HARDWARE.

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

Pour plus d’informations, voir about_Registry_Provider.

Get-ChildItem -Path HKLM:\HARDWAREHive: HKEY_LOCAL_MACHINE\HARDWAREName Property---- --------ACPIDESCRIPTIONDEVICEMAPRESOURCEMAPUEFIGet-ChildItem -Path HKLM:\HARDWARE -Exclude D*Hive: HKEY_LOCAL_MACHINE\HARDWAREName Property---- --------ACPIRESOURCEMAP

La première commande montre le contenu de la clé de registre HKLM:\HARDWARE. Le paramètre Exclude indique à Get-ChildItem de ne pas retourner les sous-clés qui commencent par D*. Actuellement, le paramètre Excludeparameter ne fonctionne que sur les sous-clés, pas sur les propriétés des éléments.

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

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

Le cmdlet Get-ChildItem utilise le paramètre Path pour spécifier le fournisseur Cert :. Le paramètreRecurse recherche le répertoire spécifié par Path et ses sous-répertoires. Le paramètreCodeSigningCert 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 :, voir about_Certificate_Provider.

Exemple 8 : Obtenir des éléments en utilisant le paramètre Depth

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

Get-ChildItem -Path C:\Parent -Depth 2Directory: C:\ParentMode LastWriteTime Length Name---- ------------- ------ ----d----- 2/14/2019 10:24 SubDir_Level1-a---- 2/13/2019 08:55 26 file.txt Directory: C:\Parent\SubDir_Level1Mode 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_Level2Mode LastWriteTime Length Name---- ------------- ------ ----d----- 2/14/2019 10:22 SubDir_Level3-a---- 2/13/2019 08:55 26 file.txt

La cmdlet Get-ChildItem utilise le paramètre Path pour spécifier C:\Parent. Le paramètre Depthparameter spécifie deux niveaux de récursion. 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 : Obtenir des informations sur le lien dur

Dans PowerShell 6.2, une vue alternative a été ajoutée pour obtenir des informations sur le lien dur.

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

Exemple 10 : Sortie pour les systèmes d’exploitation non Windows

Dans PowerShell 7.1 sur les systèmes Unix, le Get-ChildItem fournit une sortie de type Unix :

PS> Get-ChildItem /etc/r*Directory: /etcUnixMode User Group LastWriteTime Size Name-------- ---- ----- ------------- ---- ----drwxr-xr-x root wheel 9/30/2019 19:19 128 racoon-rw-r--r-- root wheel 9/26/2019 18:20 1560 rc.common-rw-r--r-- root wheel 7/31/2017 17:30 1560 rc.common~previous-rw-r--r-- root wheel 9/27/2019 20:34 5264 rc.netbootlrwxr-xr-x root wheel 11/8/2019 15:35 22 resolv.conf -> /private/var/run/resolv.conf-rw-r--r-- root wheel 10/23/2019 17:41 0 rmtab-rw-r--r-- root wheel 10/23/2019 17:41 1735 rpc-rw-r--r-- root wheel 7/25/2017 18:37 1735 rpc~previous-rw-r--r-- root wheel 10/23/2019 18:42 891 rtadvd.conf-rw-r--r-- root wheel 8/24/2017 21:54 891 rtadvd.conf~previous

Les nouvelles propriétés qui font maintenant partie de la sortie sont :

  • UnixMode est les permissions du fichier telles que représentées sur un système Unix
  • User est le propriétaire du fichier
  • Group est le propriétaire du groupe
  • Size est la taille du fichier ou du répertoire telle que représentée sur un système Unix

Note

Cette fonctionnalité est passée d’expérimentale à courante dans PowerShell 7.1.

Paramètres

-Attributs

Fournit 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 (pas des répertoires) qui sont cryptés ou compressés, tapez :

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

Pour trouver des fichiers et des dossiers avec des attributs couramment utilisés, utilisez le paramètre Attributs. Ou encore, lesparamètres Répertoire, Fichier, Caché, Lecture seule et Système.

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

  • Archive
  • Compressée
  • Device
  • Directory
  • Encrypted
  • Hidden
  • IntegrityStream
  • Normal
  • NoScrubData
  • .

  • NotContentIndexed
  • Offline
  • ReadOnly
  • ReparsePoint
  • SparseFile
  • System
  • Temporary

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

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

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

Ne pas utiliser d’espaces entre un opérateur et son attribut. Les espaces sont acceptés après les virgules.

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

  • D (répertoire)
  • H (caché)
  • R (lecture seule)
  • S (système)
Type : FlagsExpression<T>
Valeurs acceptées : Archive, Compressé, Dispositif, Répertoire, Crypté, Caché, IntegrityStream, Normal, NoScrubData, NotContentIndexed, Hors ligne, Lecture seule, ReparsePoint, SparseFile, Système, Temporaire
Position: Nommé
Valeur par défaut : None
Acceptation de l’entrée pipeline: False
Acceptation des 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 la récursion. 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épertoires qui sont inclus dans la récursion et affiche les contenus.

Par exemple, Depth 2 inclut le répertoire du paramètre Path, le premier niveau de sous-répertoires,et le deuxième niveau de sous-répertoires. Par défaut, les noms de répertoire 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 de la structure d’un répertoire avec la commande tree.com.

Type: UInt32
Position: Nommée
Valeur par défaut: None
Acceptation de l’entrée pipeline : False
Acceptation des caractères génériques: False
-Directory

Pour obtenir une liste de répertoires, utilisez le paramètre Directory ou le paramètre Attributes avec la propriété Directory. Vous pouvez utiliser le paramètre Recurse avec Directory.

Type: Paramètre de commutation
Alias: ad, d
Position : Nommé
Valeur par défaut: Non
Acceptation de l’entrée du pipeline : False
Accepter les caractères génériques: False
-Exclude

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

L’astérisque de fin (*) dans le paramètre Path est facultatif. Par exemple, -Path C:\Test\Logsou -Path C:\Test\Logs\*. Si un astérisque de fin (*) est inclus, la commande récure dans les sous-répertoires du paramètrePath. Sans l’astérisque (*), le contenu du paramètrePath est affiché. Plus de détails sont inclus dans l’exemple 5 et la section Notes.

Type: Chaîne
Position: Nommé
Valeur par défaut: None
Accepter l’entrée du pipeline : Faux
Accepter les caractères génériques: True
-Fichier

Pour obtenir une liste de fichiers, utilisez le paramètre Fichier. Vous pouvez utiliser le paramètre Recurse avecFile.

Type: Paramètre de commutation
Alias: af
Position: Nommé
Valeur par défaut : None
Acceptation de l’entrée pipeline: False
Acceptation des caractères génériques: False
-Filtre

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

Type: String
Position: 1
Valeur par défaut : None
Acceptation de l’entrée pipeline: False
Acceptation des caractères génériques : True

-FollowSymlink

Par défaut, la cmdlet Get-ChildItem affiche les liens symboliques vers les répertoires trouvés lors de la récursion, mais ne récuse pas dans ces répertoires. Utilisez le paramètre FollowSymlink pour rechercher les répertoires qui ciblent ces liens symboliques. Le paramètre FollowSymlink est un paramètre dynamique et n’est pris en charge que dans le fournisseur FileSystem.

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

Type: SwitchParameter
Position: Named
Valeur par défaut: None
Acceptation de l’entrée du pipeline : False
Accepter les caractères génériques: False
-Force

Permet à la cmdlet d’obtenir des éléments auxquels l’utilisateur ne peut autrement pas accéder, comme les fichiers cachés ou les fichiers système. Le paramètre Force ne permet pas de passer outre les restrictions de sécurité. L’implémentation varie selon les fournisseurs. Pour plus d’informations, voir about_Providers.

Type: Paramètre de commutation
Position: Nommé
Valeur par défaut: Faux
Accepter l’entrée du pipeline : False
Acceptation des caractères génériques: False
-Hidden

Pour obtenir uniquement les éléments caché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 cachés. Utilisez le Forceparamètre pour obtenir les éléments cachés.

Type: SwitchParameter
Alias: ah, h
Position : Nommé
Valeur par défaut: Non
Acceptation de l’entrée du pipeline : False
Accepter les caractères génériques: False
-Include

Spécifie, sous forme de tableau de chaînes, un ou plusieurs éléments que cette cmdlet inclut dans l’opération. La valeur de ce paramètre qualifie le paramètre Path. Saisissez un élément ou un motif de chemin, 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 C:\Windows\*, où le caractère générique spécifie le contenu du répertoire C:\Windows.

Type: Chaîne
Position: Nommé
Valeur par défaut: None
Accepter l’entrée pipeline : Faux
Acceptation des caractères génériques: True
-LiteralPath

Spécifie un chemin vers un ou plusieurs emplacements. La valeur de LiteralPath est utilisée exactement comme elle est « stypée ». Aucun caractère n’est interprété comme un caractère de remplacement. Si le chemin d’accès comprend des caractères d’échappement, il doit être placé entre guillemets simples. Les guillemets simples indiquent à PowerShell de n’interpréter aucun caractère comme une séquence d’échappement.

Pour plus d’informations, voir about_Quoting_Rules.

Type: Chaîne
Alias: PSPath, LP
Position: Nommée
Valeur par défaut : None
Acceptation de l’entrée pipeline: True
Acceptation des caractères génériques: False

-Nom

Atteint seulement les noms des éléments dans l’emplacement. La sortie est un objet de type chaîne de caractères qui peut être envoyé en aval du pipeline à d’autres commandes. Les caractères génériques sont autorisés.

Type: Paramètre de commutation
Position: Nommé
Valeur par défaut: None
Accepter l’entrée du pipeline : False
Accepter les caractères génériques: True
-Path

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

Type: Chaîne
Position: 0
Valeur par défaut: Répertoire courant
Acceptation de l’entrée pipeline : True
Acceptation des caractères génériques: True
-ReadOnly

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

Type: SwitchParameter
Alias: ar
Position : Nommé
Valeur par défaut: Non
Acceptation de l’entrée du pipeline : False
Accepter les caractères génériques: False
-Recurse

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

Type: Paramètre de commutation
Alias: s
Position: Nommé
Valeur par défaut : False
Acceptation de l’entrée pipeline: False
Acceptation des caractères génériques: False
-System

Ne récupère que les fichiers et répertoires système. Pour obtenir uniquement les fichiers et les répertoires système, utilisez le paramètre Systemparameter ou la propriété Attributes System.

Type: SwitchParameter
Aliases: as
Position : Nommé
Valeur par défaut: Non
Acceptation des entrées du pipeline : Faux
Accepter les caractères génériques: Faux

Entrées

Chaîne

Vous pouvez canaliser une chaîne de caractères qui contient un chemin d’accès à Get-ChildItem.

Sorties

Objet

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

String

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

Notes

  • Get-ChildItem peut être exécuté en utilisant l’un des alias intégrés, ls, dir et gci. Pour plus d’informations, voir about_Aliases.
  • Get-ChildItem ne récupère pas les éléments cachés par défaut. Pour obtenir des éléments cachés, utilisez le paramètre Forcepar.
  • La cmdlet 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 la rubrique about_Providers.
  • A propos de_Certificat_Provider
  • A propos de_Providers
  • A propos de_Quoting_Rules
  • A propos de_Registry_Provider
  • PourChaque-Object
  • Get-Alias
  • Get-Item
  • Get-Location
  • Get-Process
  • Get-PSProvider
  • Split-Path

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.