Get-Content
Obtient le contenu de l’élément à l’emplacement spécifié.
Syntaxe
Get-Content
[-Path] <string[]>
[-ReadCount <long>]
[-TotalCount <long>]
[-Tail <int>]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-UseTransaction]
[-Delimiter <string>]
[-Wait]
[-Raw]
[-Encoding <FileSystemCmdletProviderEncoding>]
[-Stream <string>]
[<CommonParameters>]
Get-Content
-LiteralPath <string[]>
[-ReadCount <long>]
[-TotalCount <long>]
[-Tail <int>]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-UseTransaction]
[-Delimiter <string>]
[-Wait]
[-Raw]
[-Encoding <FileSystemCmdletProviderEncoding>]
[-Stream <string>]
[<CommonParameters>]
Description
L’applet de commande Get-Content
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 une ligne à la fois et retourne une collection d’objets, chacun représentant une ligne de contenu.
À compter de PowerShell 3.0, Get-Content
pouvez é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 fichier LineNumbers.txt
contient 100 lignes au format, Il s’agit de 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 au pipeline à l’applet de commande ForEach-Object
.
ForEach-Object
utilise un bloc de script avec l’applet de commande Add-Content
pour créer le fichier LineNumbers.txt
. La variable $_
représente les valeurs de tableau à mesure que chaque objet est envoyé vers le bas du pipeline. L’applet de commande
Exemple 2 : Limiter le nombre de lignes Get-Content renvoie
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 fichier LineNumbers.txt
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 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 fichier LineNumbers.txt
créé dans l’exemple 1.
(Get-Content -Path .\LineNumbers.txt -TotalCount 25)[-1]
This is Line 25
La commande Get-Content
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, cela 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 première ligne et la dernière ligne de contenu d’un fichier. Cet exemple utilise le fichier LineNumbers.txt
créé dans l’exemple 1.
Get-Item -Path .\LineNumbers.txt | Get-Content -Tail 1
This is Line 100
Cet exemple utilise l’applet de commande Get-Item
pour illustrer que vous pouvez diriger des fichiers vers le paramètre Get-Content
. 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 décrit 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 commande Set-Content
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
récupère uniquement les données du flux principal ou $DATA
.
Flux de 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.
Exemple 6 : Obtenir du contenu brut
Les commandes de cet exemple obtiennent le contenu d’un fichier sous la forme d’une seule 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 de nouvelles lignes. Cet exemple utilise le fichier LineNumbers.txt
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 dans l’applet de commande Get-Content
. Lorsque vous utilisez des filtres pour qualifier le paramètre Path
La commande suivante obtient le contenu de tous les fichiers *.log
dans le répertoire C:\Temp
.
Get-Content -Path C:\Temp\* -Filter *.log
Exemple 8 : Obtenir le contenu du fichier en tant que tableau d’octets
Cet exemple montre comment obtenir le contenu d’un fichier en tant que [byte[]]
en tant qu’objet unique.
$byteArray = Get-Content -Path C:\temp\test.txt -Encoding Byte -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 d’encodage 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, interprété par PowerShell comme [System.Object[]]
.
Paramètres
-Credential
Note
Ce paramètre n’est pas pris en charge par les fournisseurs installés 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 |
Valeur par défaut: | Current user |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Delimiter
Spécifie le délimiteur que Get-Content
utilise pour diviser le fichier en objets pendant qu’il lit. 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 de chaîne, chacune 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 l’intégralité du fichier 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é (non ignoré) et devient le dernier élément de chaque section de fichier.
Note
Actuellement, lorsque la valeur du paramètre délimiteur est une chaîne vide, Get-Content
ne retourne rien. Il s’agit d’un problème connu. Pour forcer Get-Content
à retourner l’intégralité du fichier 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 |
Valeur par défaut: | End-of-line character |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Encoding
Spécifie le type d’encodage du fichier cible. La valeur par défaut est par défaut .
Les valeurs acceptables pour ce paramètre sont les suivantes :
- ASCII utilise un jeu de caractères ASCII (7 bits).
- BigEndianUnicode utilise UTF-16 avec l’ordre d’octet big-endian.
- BigEndianUTF32 utilise UTF-32 avec l’ordre d’octet big-endian.
- octets encode un jeu de caractères dans une séquence d’octets.
- par défaut utilise l’encodage qui correspond à la page de codes active du système (généralement ANSI).
- oem utilise l’encodage correspondant à la page de codes OEM actuelle du système.
- Chaîne Identique à Unicode .
- l' Unicode utilise UTF-16 avec l’ordre d’octet little-endian.
- inconnu identique à Unicode .
- UTF7 utilise UTF-7.
- UTF8 utilise UTF-8.
- UTF32 utilise UTF-32 avec l’ordre d’octet little-endian.
L’encodage est un paramètre dynamique que le fournisseur fileSystem
Lors de la lecture et de l’écriture dans des fichiers binaires, utilisez une valeur de Set-Content
pour écrire les octets dans un fichier.
Type: | FileSystemCmdletProviderEncoding |
Valeurs acceptées: | ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
Position: | Named |
Valeur par défaut: | Default |
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, un élément ou des é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 Exclure 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 répertoire C:\Windows
.
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 |
-Filter
Spécifie un filtre pour qualifier le paramètre Path. Le fournisseur FileSystem
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 |
-Force
Forcer remplacera un attribut en lecture seule ou créera des répertoires pour terminer un chemin d’accès au fichier. Le paramètre Forcer ne tente pas de modifier les autorisations de fichier ou de remplacer les restrictions de sécurité.
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 |
-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 |
-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 des chemins d’accès aux éléments, et non aux conteneurs. Par exemple, vous devez spécifier un chemin d’accès à un ou plusieurs fichiers, et non un chemin d’accès à un répertoire.
Type: | String[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | 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 lignes de nouvelle ligne conservées. Par défaut, les caractères de nouvelle ligne d’un fichier sont utilisés comme délimiteurs pour séparer l’entrée dans 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 de commande Get-Content
Ce paramètre fonctionne uniquement dans les lecteurs de système de fichiers.
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: | False |
-ReadCount
Spécifie le nombre de lignes de contenu envoyées via le pipeline à la fois. 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 nécessaire à l’affichage du contenu. Lorsque la valeur de ReadCount augmente, le temps nécessaire pour retourner la première ligne augmente, mais le temps total de l’opération diminue. Cela peut faire une différence perceptible dans les grands articles.
Type: | Int64 |
Position: | Named |
Valeur par défaut: | 1 |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Stream
Obtient le contenu du flux de fichiers NTFS de remplacement spécifié à partir du fichier. Entrez le nom du flux. Les caractères génériques ne sont pas pris en charge.
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: | False |
-Tail
Spécifie le nombre de lignes de la fin d’un fichier ou d’un autre élément. Vous pouvez utiliser le nom du paramètre Tail
Type: | Int32 |
Alias: | Last |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | 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
Type: | Int64 |
Alias: | First, Head |
Position: | Named |
Valeur par défaut: | -1 |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
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 |
-Wait
Conserve le fichier ouvert une fois que toutes les lignes existantes ont été générées. En attendant, Get-Content
vérifie le fichier une fois par seconde et génère de nouvelles lignes si elles sont présentes. Vous pouvez interrompre attendre en appuyant sur Ctrl+C. L’attente se termine également si le fichier est supprimé, auquel cas une erreur de non-fin est signalée.
Wait est un paramètre dynamique que le fournisseur FileSystem ajoute à l’applet de commande Get-Content
. Ce paramètre fonctionne uniquement dans les lecteurs de système de fichiers.
'attente ne peut pas être combiné avec brut .
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 |
Entrées
System.Int64, System.String[], System.Management.Automation.PSCredential
Vous pouvez diriger le nombre de lectures, le nombre total, les chemins d’accès ou les informations d’identification pour 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 de commande Get-Content
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 commande Get-PSProvider
. Pour plus d’informations, consultez about_Providers.