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
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 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
-
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
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 *
) pour spécifier tous les fichiers avec l’extension de nom de fichier .txt. Le paramètre
Exemple 4 : Obtenir des éléments enfants à l’aide du paramètre Include
Dans cet exemple,
# 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 *
) générique pour spécifier le contenu du répertoire.
Le paramètre Include
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ètreRecurse obtient les éléments du répertoire chemin d’accèset 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 *
) pour spécifier les fichiers ou répertoires commençant par A ou un sont exclus de la sortie.
Lorsque le paramètre -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 commanderé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
.
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
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
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
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
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 *
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é 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
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
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
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
Vous pouvez diriger une chaîne qui contient un chemin d’accès à Get-ChildItem
.
Sorties
Le type d’objet retourné Get-ChildItem
est déterminé par les objets du chemin d’accès du lecteur du fournisseur.
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
,dir
etgci
. 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, tapezGet-PSProvider
. Pour plus d’informations, consultez about_Providers.