Get-Content
Obtient le contenu de l'élément à l'emplacement spécifié.
Syntax
Get-Content
[-ReadCount <Int64>]
[-TotalCount <Int64>]
[-Tail <Int32>]
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Force]
[-Credential <PSCredential>]
[-Delimiter <String>]
[-Wait]
[-Raw]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <String>]
[<CommonParameters>]
Get-Content
[-ReadCount <Int64>]
[-TotalCount <Int64>]
[-Tail <Int32>]
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Force]
[-Credential <PSCredential>]
[-Delimiter <String>]
[-Wait]
[-Raw]
[-Encoding <Encoding>]
[-AsByteStream]
[-Stream <String>]
[<CommonParameters>]
Description
L’applet Get-Content
de commande obtient le contenu de l’élément à l’emplacement spécifié par le chemin d’accès, tel que le texte d’un fichier ou le contenu d’une fonction. Pour les fichiers, le contenu est lu ligne par ligne et retourne une collection d’objets, chacun représentant une ligne de contenu.
À partir de PowerShell 3.0, Get-Content
peut également obtenir un nombre spécifié de lignes à partir du début ou de la fin d’un élément.
Exemples
Exemple 1 : Obtenir le contenu d’un fichier texte
Cet exemple obtient le contenu d’un fichier dans le répertoire actif. Le LineNumbers.txt
fichier contient 100 lignes au format , il s’agit de la ligne X et est utilisé dans plusieurs exemples.
1..100 | ForEach-Object { Add-Content -Path .\LineNumbers.txt -Value "This is line $_." }
Get-Content -Path .\LineNumbers.txt
This is Line 1
This is Line 2
...
This is line 99.
This is line 100.
Les valeurs de tableau 1 à 100 sont envoyées vers le bas du pipeline à l’applet de ForEach-Object
commande. ForEach-Object
utilise un bloc de script avec l’applet Add-Content
de commande pour créer le LineNumbers.txt
fichier. La variable $_
représente les valeurs du tableau à mesure que chaque objet est envoyé dans le pipeline. L’applet Get-Content
de commande utilise le paramètre Path pour spécifier le LineNumbers.txt
fichier et affiche le contenu dans la console PowerShell.
Exemple 2 : Limiter le nombre de lignes Get-Content retournées
Cette commande obtient les cinq premières lignes d’un fichier. Le paramètre TotalCount est utilisé pour obtenir les cinq premières lignes de contenu. Cet exemple utilise le LineNumbers.txt
fichier créé dans l’exemple 1.
Get-Content -Path .\LineNumbers.txt -TotalCount 5
This is Line 1
This is Line 2
This is Line 3
This is Line 4
This is Line 5
Exemple 3 : Obtenir une ligne de contenu spécifique à partir d’un fichier texte
Cette commande obtient un nombre spécifique de lignes à partir d’un fichier, puis affiche uniquement la dernière ligne de ce contenu. Le paramètre TotalCount obtient les 25 premières lignes de contenu. Cet exemple utilise le LineNumbers.txt
fichier créé dans l’exemple 1.
(Get-Content -Path .\LineNumbers.txt -TotalCount 25)[-1]
This is Line 25
La Get-Content
commande est encapsulée entre parenthèses afin que la commande se termine avant de passer à l’étape suivante. Get-Content
retourne un tableau de lignes, ce qui vous permet d’ajouter la notation d’index après la parenthèse pour récupérer un numéro de ligne spécifique. Dans ce cas, l’index [-1]
spécifie le dernier index dans le tableau retourné de 25 lignes récupérées.
Exemple 4 : Obtenir la dernière ligne d’un fichier texte
Cette commande obtient la dernière ligne de contenu d’un fichier. Cet exemple utilise le LineNumbers.txt
fichier créé dans l’exemple 1.
Get-Item -Path .\LineNumbers.txt | Get-Content -Tail 1
This is Line 100
Cet exemple utilise l’applet Get-Item
de commande pour montrer que vous pouvez diriger des fichiers vers le Get-Content
paramètre . Le paramètre Tail obtient la dernière ligne du fichier. Cette méthode est plus rapide que la récupération de toutes les lignes et l’utilisation de la notation d’index [-1]
.
Exemple 5 : Obtenir le contenu d’un autre flux de données
Cet exemple explique comment utiliser le paramètre Stream pour obtenir le contenu d’un autre flux de données pour les fichiers stockés sur un volume NTFS Windows. Dans cet exemple, l’applet de Set-Content
commande est utilisée pour créer un exemple de contenu dans un fichier nommé Stream.txt
.
Set-Content -Path .\Stream.txt -Value 'This is the content of the Stream.txt file'
# Specify a wildcard to the Stream parameter to display all streams of the recently created file.
Get-Item -Path .\Stream.txt -Stream *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt::$DATA
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt::$DATA
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : :$DATA
Length : 44
# Retrieve the content of the primary, or $DATA stream.
Get-Content -Path .\Stream.txt -Stream $DATA
This is the content of the Stream.txt file
# Use the Stream parameter of Add-Content to create a new Stream containing sample content.
Add-Content -Path .\Stream.txt -Stream NewStream -Value 'Added a stream named NewStream to Stream.txt'
# Use Get-Item to verify the stream was created.
Get-Item -Path .\Stream.txt -Stream *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt::$DATA
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt::$DATA
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : :$DATA
Length : 44
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Test\Stream.txt:NewStream
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Test
PSChildName : Stream.txt:NewStream
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\Test\Stream.txt
Stream : NewStream
Length : 46
# Retrieve the content of your newly created Stream.
Get-Content -Path .\Stream.txt -Stream NewStream
Added a stream named NewStream to Stream.txt
Le paramètre Stream est un paramètre dynamique du fournisseur FileSystem.
Par défaut Get-Content
, :$DATA
récupère uniquement les données du flux par défaut. Les flux peuvent être utilisés pour stocker des données masquées telles que des attributs, des paramètres de sécurité ou d’autres données. Ils peuvent également être stockés dans des répertoires sans être des éléments enfants.
Exemple 6 : Obtenir du contenu brut
Les commandes de cet exemple obtiennent le contenu d’un fichier sous la forme d’une chaîne, au lieu d’un tableau de chaînes. Par défaut, sans le paramètre dynamique Raw , le contenu est retourné sous la forme d’un tableau de chaînes délimitées par une nouvelle ligne. Cet exemple utilise le LineNumbers.txt
fichier créé dans l’exemple 1.
$raw = Get-Content -Path .\LineNumbers.txt -Raw
$lines = Get-Content -Path .\LineNumbers.txt
Write-Host "Raw contains $($raw.Count) lines."
Write-Host "Lines contains $($lines.Count) lines."
Raw contains 1 lines.
Lines contains 100 lines.
Exemple 7 : Utiliser des filtres avec Get-Content
Vous pouvez spécifier un filtre pour l’applet de Get-Content
commande. Lorsque vous utilisez des filtres pour qualifier le paramètre Path , vous devez inclure un astérisque de fin (*
) pour indiquer le contenu du chemin.
La commande suivante obtient le contenu de tous les *.log
fichiers du C:\Temp
répertoire.
Get-Content -Path C:\Temp\* -Filter *.log
Exemple 8 : Obtenir le contenu d’un fichier sous la forme d’un tableau d’octets
Cet exemple montre comment obtenir le contenu d’un fichier en tant qu’objet [byte[]]
unique.
$byteArray = Get-Content -Path C:\temp\test.txt -AsByteStream -Raw
Get-Member -InputObject $bytearray
TypeName: System.Byte[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Add Method int IList.Add(System.Object value)
La première commande utilise le paramètre AsByteStream pour obtenir le flux d’octets du fichier.
Le paramètre Raw garantit que les octets sont retournés en tant que [System.Byte[]]
. Si le paramètre Raw était absent, la valeur de retour est un flux d’octets, qui est interprété par PowerShell comme [System.Object[]]
.
Paramètres
-AsByteStream
Spécifie que le contenu doit être lu sous la forme d’un flux d’octets. Le paramètre AsByteStream a été introduit dans Windows PowerShell 6.0.
Un avertissement se produit lorsque vous utilisez le paramètre AsByteStream avec le paramètre Encoding . Le paramètre AsByteStream ignore tout encodage et la sortie est retournée sous la forme d’un flux d’octets.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Notes
Ce paramètre n’est pris en charge par aucun fournisseur installé avec PowerShell. Pour emprunter l’identité d’un autre utilisateur ou élever vos informations d’identification lors de l’exécution de cette applet de commande, utilisez Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Delimiter
Spécifie le délimiteur qui Get-Content
utilise pour diviser le fichier en objets pendant la lecture. La valeur par défaut est \n
, le caractère de fin de ligne. Lors de la lecture d’un fichier texte, Get-Content
retourne une collection d’objets chaîne, chacun se terminant par un caractère de fin de ligne. Lorsque vous entrez un délimiteur qui n’existe pas dans le fichier, Get-Content
retourne le fichier entier sous la forme d’un seul objet non délimité.
Vous pouvez utiliser ce paramètre pour fractionner un fichier volumineux en fichiers plus petits en spécifiant un séparateur de fichiers, comme délimiteur. Le délimiteur est conservé (il n'est pas supprimé) et devient le dernier élément de chaque section du fichier.
Le délimiteur est un paramètre dynamique que le fournisseur FileSystem ajoute à l’applet de Get-Content
commande. Ce paramètre fonctionne uniquement dans les lecteurs du système de fichiers.
Notes
Actuellement, lorsque la valeur du paramètre Delimiter est une chaîne vide, Get-Content
ne retourne rien. Il s'agit d'un problème connu. Pour forcer Get-Content
le retour du fichier entier sous la forme d’une chaîne unique et non délimitée. Entrez une valeur qui n’existe pas dans le fichier.
Type: | String |
Position: | Named |
Default value: | End-of-line character |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Spécifie le type de codage du fichier cible. La valeur par défaut est utf8NoBOM
.
Les valeurs acceptables pour ce paramètre sont les suivantes :
ascii
: utilise l’encodage pour le jeu de caractères ASCII (7 bits).bigendianunicode
: encode au format UTF-16 à l’aide de l’ordre d’octets big-endian.bigendianutf32
: encode au format UTF-32 à l’aide de l’ordre d’octets big-endian.oem
: utilise l’encodage par défaut pour les programmes MS-DOS et console.unicode
: encode au format UTF-16 à l’aide de l’ordre d’octet little-endian.utf7
: encode au format UTF-7.utf8
: encode au format UTF-8.utf8BOM
: encode au format UTF-8 avec une marque d’ordre d’octet (BOM)utf8NoBOM
: encode au format UTF-8 sans marque d’ordre d’octet (BOM)utf32
: encode au format UTF-32.
L’encodage est un paramètre dynamique que le fournisseur FileSystem ajoute à l’applet de Get-Content
commande.
Ce paramètre est disponible uniquement dans les lecteurs de système de fichiers.
Lors de la lecture et de l’écriture dans des fichiers binaires, utilisez le paramètre AsByteStream et la valeur 0 pour le paramètre ReadCount . Une valeur ReadCount de 0 lit le fichier entier en une seule opération de lecture. La valeur ReadCount par défaut, 1, lit un octet dans chaque opération de lecture et convertit chaque octet en un objet distinct, ce qui provoque des erreurs lorsque vous utilisez l’applet Set-Content
de commande pour écrire les octets dans un fichier, sauf si vous utilisez le paramètre AsByteStream .
À compter de PowerShell 6.2, le paramètre Encoding autorise également les ID numériques des pages de codes inscrites (comme -Encoding 1251
) ou les noms de chaîne de pages de codes inscrites (comme -Encoding "windows-1251"
). Pour plus d’informations, consultez la documentation .NET pour Encoding.CodePage.
Notes
Il n’est plus recommandé d’utiliser UTF-7*. À partir de PowerShell 7.1, un avertissement est écrit si vous spécifiez utf7
pour le paramètre Encoding .
Type: | Encoding |
Accepted values: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Spécifie, en tant que tableau de chaînes, un ou plusieurs éléments que cette applet de commande exclut 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 Exclude est effectif uniquement 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 C:\Windows
répertoire.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-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. Vous trouverez la syntaxe du langage de filtre FileSystem dans about_Wildcards. Les filtres sont plus efficaces que d’autres paramètres, car le fournisseur les applique lorsque l’applet de commande obtient les objets au lieu de laisser PowerShell filtrer les objets après leur récupération.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Force remplace un attribut en lecture seule ou crée des répertoires pour terminer un chemin d’accès de fichier. Le paramètre Force ne tente pas de modifier les autorisations de fichier ou de remplacer les restrictions de sécurité.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Spécifie, en tant que tableau de chaînes, un ou plusieurs éléments que cette applet de commande inclut 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 efficace uniquement 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 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 telle qu’elle est tapé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 de 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 |
-Path
Spécifie le chemin d’accès à un élément où Get-Content
obtient le contenu. Les caractères génériques sont autorisés. Les chemins d'accès doivent être ceux des éléments et non des conteneurs. Par exemple, vous devez spécifier un chemin d'accès à un ou plusieurs fichiers et non à un répertoire.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Raw
Ignore les caractères de nouvelle ligne et retourne l’intégralité du contenu d’un fichier dans une chaîne avec les nouvelles lignes conservées. Par défaut, les caractères de nouvelle ligne dans un fichier sont utilisés comme délimiteurs pour séparer l’entrée en un tableau de chaînes. Ce paramètre a été introduit dans PowerShell 3.0.
Raw est un paramètre dynamique que le fournisseur FileSystem ajoute à l’applet Get-Content
de commande Ce paramètre fonctionne uniquement dans les lecteurs de système de fichiers.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ReadCount
Spécifie le nombre de lignes de contenu envoyées simultanément via le pipeline. La valeur par défaut est 1. La valeur 0 (zéro) envoie tout le contenu à la fois.
Ce paramètre ne modifie pas le contenu affiché, mais il affecte le temps requis pour afficher le contenu. À mesure que la valeur de ReadCount augmente, le temps nécessaire pour retourner la première ligne augmente, tandis que le temps total requis pour l’opération diminue. Cela peut faire une différence perceptible dans les grands éléments.
Type: | Int64 |
Position: | Named |
Default value: | 1 |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Stream
Notes
Ce paramètre est disponible uniquement sur Windows.
Obtient le contenu du flux de fichiers NTFS alternatif spécifié du fichier. Entrez le nom du flux. Les caractères génériques ne sont pas pris en charge.
Stream est un paramètre dynamique que le fournisseur FileSystem ajoute à l’applet de Get-Content
commande.
Ce paramètre fonctionne uniquement dans les lecteurs de système de fichiers sur les systèmes Windows. Ce paramètre a été introduit dans Windows PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Tail
Spécifie le nombre de lignes à partir de la fin d’un fichier ou d’un autre élément. Vous pouvez utiliser le nom du paramètre Tail ou son alias, Last. Ce paramètre a été introduit dans PowerShell 3.0.
Type: | Int32 |
Aliases: | Last |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-TotalCount
Spécifie le nombre de lignes à partir du début d’un fichier ou d’un autre élément. La valeur par défaut est -1 (toutes les lignes).
Vous pouvez utiliser le nom du paramètre TotalCount ou ses alias , First ou Head.
Type: | Int64 |
Aliases: | First, Head |
Position: | Named |
Default value: | -1 |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Wait
Conserve le fichier ouvert une fois que toutes les lignes existantes ont été sorties. Pendant l’attente, Get-Content
vérifie le fichier une fois par seconde et génère de nouvelles lignes, le cas échéant. Vous pouvez interrompre l’attente en appuyant sur Ctrl+C. L’attente se termine également si le fichier est supprimé, auquel cas une erreur sans fin est signalée.
Wait est un paramètre dynamique que le fournisseur FileSystem ajoute à l’applet de Get-Content
commande. Ce paramètre fonctionne uniquement dans les lecteurs du système de fichiers. L’attente ne peut pas être combinée avec Raw.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entrées
System.Int64, System.String[], System.Management.Automation.PSCredential
Vous pouvez diriger le nombre de lectures, le nombre total, les chemins ou les informations d’identification vers Get-Content
.
Sorties
System.Byte, System.String
Get-Content
retourne des chaînes ou des octets. Le type de sortie dépend du type de contenu que vous spécifiez comme entrée.
Notes
L’applet Get-Content
de commande est conçue pour fonctionner avec les données exposées par n’importe quel fournisseur. Pour obtenir les fournisseurs dans votre session, utilisez l’applet de Get-PSProvider
commande . Pour plus d'informations, consultez about_Providers.