Get-Content

Hiermee haalt u de inhoud van het item op de opgegeven locatie op.

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

De Get-Content cmdlet haalt de inhoud van het item op op de locatie die is opgegeven door het pad, zoals de tekst in een bestand of de inhoud van een functie. Voor bestanden wordt de inhoud één regel tegelijk gelezen en wordt een verzameling objecten geretourneerd, die elk een regel met inhoud vertegenwoordigen.

Vanaf PowerShell 3.0 Get-Content kunt u ook een opgegeven aantal regels ophalen vanaf het begin of einde van een item.

Voorbeelden

Voorbeeld 1: De inhoud van een tekstbestand ophalen

In dit voorbeeld wordt de inhoud van een bestand in de huidige map opgeslagen. Het LineNumbers.txt bestand bevat 100 regels in de indeling, Dit is Regel X en wordt in verschillende voorbeelden gebruikt.

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.

De matrixwaarden 1-100 worden naar de ForEach-Object cmdlet verzonden. ForEach-Object maakt gebruik van een scriptblok met de Add-Content cmdlet om het LineNumbers.txt bestand te maken. De variabele $_ vertegenwoordigt de matrixwaarden wanneer elk object wordt verzonden naar beneden de pijplijn. De Get-Content cmdlet gebruikt de parameter Path om het LineNumbers.txt bestand op te geven en de inhoud in de PowerShell-console weer te geven.

Voorbeeld 2: Het aantal regels beperken Get-Content retourneert

Met deze opdracht worden de eerste vijf regels van een bestand opgeslagen. De parameter TotalCount wordt gebruikt om de eerste vijf regels inhoud op tehaalt. In dit voorbeeld wordt het LineNumbers.txt bestand gebruikt dat is gemaakt in voorbeeld 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

Voorbeeld 3: Een specifieke regel inhoud ophalen uit een tekstbestand

Met deze opdracht wordt een specifiek aantal regels opgehaald uit een bestand en wordt vervolgens alleen de laatste regel van die inhoud weergegeven. De parameter TotalCount haalt de eerste 25 regels inhoud op. In dit voorbeeld wordt het LineNumbers.txt bestand gebruikt dat is gemaakt in voorbeeld 1.

(Get-Content -Path .\LineNumbers.txt -TotalCount 25)[-1]

This is Line 25

De Get-Content opdracht wordt tussen haakjes verpakt, zodat de opdracht wordt voltooid voordat u naar de volgende stap gaat. Get-Contentretourneert een matrix met regels, zodat u de indexnotatie na het haakje kunt toevoegen om een specifiek regelnummer op te halen. In dit geval geeft de [-1] index de laatste index op in de geretourneerde matrix van 25 opgehaalde regels.

Voorbeeld 4: De laatste regel van een tekstbestand ophalen

Met deze opdracht wordt de laatste regel inhoud uit een bestand opgehaald. In dit voorbeeld wordt het LineNumbers.txt bestand gebruikt dat is gemaakt in voorbeeld 1.

Get-Item -Path .\LineNumbers.txt | Get-Content -Tail 1

This is Line 100

In dit voorbeeld wordt de Get-Item cmdlet gebruikt om aan te tonen dat u bestanden kunt doorsluisen naar de Get-Content parameter. De parameter Tail haalt de laatste regel van het bestand op. Deze methode is sneller dan alle regels ophalen en de [-1] index notatie gebruiken.

Voorbeeld 5: De inhoud van een alternatieve gegevensstroom ophalen

In dit voorbeeld wordt beschreven hoe u de Stream-parameter gebruikt om de inhoud van een alternatieve gegevensstroom op te halen voor bestanden die zijn opgeslagen op een Windows NTFS-volume. In dit voorbeeld wordt de cmdlet gebruikt om voorbeeldinhoud te maken in een bestand met de Set-Content naam 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.    # Retrieve the content of the primary stream. Note the singlequotes to prevent variable substitution.
Get-Content -Path .\Stream.txt -Stream $DATA    Get-Content -Path .\Stream.txt -Stream ':$DATA'

This is the content of the Stream.txt file

# Alternative way to get the same content.
Get-Content -Path .\Stream.txt -Stream ""
# The primary stream doesn't need to be specified to get the primary stream of the file.
# This gets the same data as the prior two examples.
Get-Content -Path .\Stream.txt

This is the content of the Stream.txt file

# The primary stream doesn't need to be specified to get the primary stream of the file.
# This gets the same data as the prior two examples.
Get-Content -Path .\Stream.txt

# 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

De Stream-parameter is een dynamische parameter van de FileSystem-provider. Get-Content Standaard worden alleen gegevens opgehaald uit de standaardwaarde of :$DATA stream. Streams kunnen worden gebruikt voor het opslaan van verborgen gegevens, zoals kenmerken, beveiligingsinstellingen of andere gegevens. Ze kunnen ook worden opgeslagen in mappen zonder onderliggende items te zijn.

Voorbeeld 6: Onbewerkte inhoud ophalen

Met de opdrachten in dit voorbeeld wordt de inhoud van een bestand als één tekenreeks weergegeven, in plaats van een matrix met tekenreeksen. Standaard wordt inhoud zonder de dynamische parameter Raw geretourneerd als een matrix met door nieuwe regels gescheiden tekenreeksen. In dit voorbeeld wordt het LineNumbers.txt bestand gebruikt dat is gemaakt in voorbeeld 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.

Voorbeeld 7: Filters gebruiken met Get-Content

U kunt een filter opgeven voor de Get-Content cmdlet. Wanneer u filters gebruikt om de padparameter te kwalificeren, moet u een volgsterretje (*) opnemen om de inhoud van het pad aan te geven.

Met de volgende opdracht wordt de inhoud van alle *.log bestanden in de C:\Temp map opgeslagen.

Get-Content -Path C:\Temp\* -Filter *.log

Voorbeeld 8: Bestandsinhoud ophalen als een bytematrix

In dit voorbeeld ziet u hoe u de inhoud van een bestand als [byte[]] één object kunt ophalen.

$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)

De eerste opdracht maakt gebruik van de parameter AsByteStream om de stroom bytes uit het bestand op te halen. De raw-parameter zorgt ervoor dat de bytes als een [System.Byte[]]. Als de raw-parameter afwezig was, is de retourwaarde een stroom van bytes, die wordt geïnterpreteerd door PowerShell als [System.Object[]].

Parameters

-AsByteStream

Hiermee geeft u op dat de inhoud moet worden gelezen als een stroom van bytes. De parameter AsByteStream is geïntroduceerd in Windows PowerShell 6.0.

Er treedt een waarschuwing op wanneer u de parameter AsByteStream gebruikt met de coderingsparameter . De parameter AsByteStream negeert alle coderingen en de uitvoer wordt geretourneerd als een stroom bytes.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Credential

Notitie

Deze parameter wordt niet ondersteund door providers die zijn geïnstalleerd met PowerShell. Als u een andere gebruiker wilt imiteren of uw referenties wilt verhogen bij het uitvoeren van deze cmdlet, gebruikt u Invoke-Command.

Type:PSCredential
Position:Named
Default value:Current user
Accept pipeline input:True
Accept wildcard characters:False
-Delimiter

Hiermee geeft u het scheidingsteken op dat Get-Content wordt gebruikt om het bestand te verdelen in objecten terwijl het wordt gelezen. De standaardwaarde is \n, het einde van regelteken. Wanneer u een tekstbestand leest, Get-Content wordt een verzameling tekenreeksobjecten geretourneerd, die elk eindigen met een einde-van-regelteken. Wanneer u een scheidingsteken invoert dat niet in het bestand bestaat, Get-Content retourneert u het hele bestand als één, niet-gescheiden object.

U kunt deze parameter gebruiken om een groot bestand op te splitsen in kleinere bestanden door een bestandsscheidingsteken op te geven als scheidingsteken. Het scheidingsteken blijft behouden (niet verwijderd) en wordt het laatste item in elke bestandssectie.

Scheidingsteken is een dynamische parameter die de FileSystem-provider toevoegt aan de Get-Content cmdlet. Deze parameter werkt alleen in bestandssysteemstations.

Notitie

Wanneer de waarde van de parameter Scheidingsteken een lege tekenreeks is, Get-Content retourneert momenteel niets. Dit is een bekend probleem. Als u wilt afdwingen Get-Content dat het hele bestand als één, niet-gescheiden tekenreeks wordt geretourneerd. Voer een waarde in die niet bestaat in het bestand.

Type:String
Position:Named
Default value:End-of-line character
Accept pipeline input:False
Accept wildcard characters:False
-Encoding

Hiermee geeft u het type codering voor het doelbestand. De standaardwaarde is utf8NoBOM.

De acceptabele waarden voor deze parameter zijn als volgt:

  • ascii: gebruikt de codering voor de ASCII-tekenset (7-bits).
  • bigendianunicode: Codeert in UTF-16-indeling met de bytevolgorde big-endian.
  • bigendianutf32: Codeert in UTF-32-indeling met behulp van de bytevolgorde big-endian.
  • oem: gebruikt de standaardcodering voor MS-DOS en consoleprogramma's.
  • unicode: Codeert in UTF-16-indeling met behulp van de bytevolgorde little-endian.
  • utf7: Codeert in UTF-7-indeling.
  • utf8: Codeert in UTF-8-indeling.
  • utf8BOM: Codeert in UTF-8-indeling met Byte Order Mark (BOM)
  • utf8NoBOM: Codeert in UTF-8-indeling zonder Byte Order Mark (BOM)
  • utf32: Codeert in UTF-32-indeling.

Encoding is een dynamische parameter die de FileSystem-provider toevoegt aan de Get-Content cmdlet. Deze parameter is alleen beschikbaar in bestandssysteemstations.

Bij het lezen van en schrijven naar binaire bestanden gebruikt u de parameter AsByteStream en een waarde van 0 voor de parameter ReadCount . Een ReadCount-waarde van 0 leest het hele bestand in één leesbewerking. De standaardwaarde ReadCount , 1, leest één byte in elke leesbewerking en converteert elke byte naar een afzonderlijk object, wat fouten veroorzaakt wanneer u de cmdlet gebruikt Set-Content om de bytes naar een bestand te schrijven, tenzij u de parameter AsByteStream gebruikt.

Vanaf PowerShell 6.2 staat de coderingsparameter ook numerieke id's toe van geregistreerde codepagina's (zoals -Encoding 1251) of tekenreeksnamen van geregistreerde codepagina's (zoals -Encoding "windows-1251"). Zie de .NET-documentatie voor Encoding.CodePage voor meer informatie.

Notitie

UTF-7* wordt niet meer aanbevolen om te gebruiken. Vanaf PowerShell 7.1 wordt een waarschuwing geschreven als u opgeeft utf7 voor de coderingsparameter .

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Accept pipeline input:False
Accept wildcard characters:False
-Exclude

Hiermee geeft u, als tekenreeksmatrix, een item of items op die door deze cmdlet worden uitgesloten in de bewerking. De waarde van deze parameter komt in aanmerking voor de path-parameter .

Voer een padelement of -patroon in, zoals *.txt. Jokertekens zijn toegestaan.

De parameter Uitsluiten is alleen van kracht wanneer de opdracht de inhoud van een item bevat, zoals C:\Windows\*, waarbij het jokerteken de inhoud van de C:\Windows map aangeeft.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True
-Filter

Hiermee geeft u een filter op om de path-parameter te kwalificeren. De FileSystem-provider is de enige geïnstalleerde PowerShell-provider die ondersteuning biedt voor het gebruik van filters. U vindt de syntaxis voor de filtertaal Bestandssysteem in about_Wildcards. Filters zijn efficiënter dan andere parameters, omdat de provider ze toepast wanneer de cmdlet de objecten ophaalt in plaats van PowerShell de objecten te filteren nadat ze zijn opgehaald.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True
-Force

Afdwingen overschrijft een kenmerk alleen-lezen of maakt mappen om een bestandspad te voltooien. De parameter Force probeert geen bestandsmachtigingen te wijzigen of beveiligingsbeperkingen te negeren.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-Include

Hiermee geeft u, als tekenreeksmatrix, een item of items op die deze cmdlet bevat in de bewerking. De waarde van deze parameter komt in aanmerking voor de path-parameter . Voer een padelement of -patroon in, zoals "*.txt". Jokertekens zijn toegestaan. De parameter Opnemen is alleen van kracht wanneer de opdracht de inhoud van een item bevat, zoals C:\Windows\*, waarbij het jokerteken de inhoud van de C:\Windows map aangeeft.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True
-LiteralPath

Hiermee geeft u een pad naar een of meer locaties. De waarde van LiteralPath wordt exact gebruikt terwijl deze wordt getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escapetekens bevat, plaatst u het tussen enkele aanhalingstekens. Enkele aanhalingstekens geven PowerShell aan dat u geen tekens als escape-reeksen interpreteert.

Zie about_Quoting_Rules voor meer informatie.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Path

Hiermee geeft u het pad naar een item op waar Get-Content de inhoud wordt opgeslagen. Jokertekens zijn toegestaan. De paden moeten paden naar items zijn, niet naar containers. U moet bijvoorbeeld een pad naar een of meer bestanden opgeven, niet een pad naar een map.

Type:String[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:True
-Raw

Hiermee worden nieuwe regeltekens genegeerd en wordt de volledige inhoud van een bestand in één tekenreeks geretourneerd, waarbij de nieuwe regels behouden blijven. Nieuwe regeltekens in een bestand worden standaard gebruikt als scheidingstekens om de invoer te scheiden in een matrix met tekenreeksen. Deze parameter is geïntroduceerd in PowerShell 3.0.

Raw is een dynamische parameter die de filesystem-provider toevoegt aan de Get-Content cmdlet Deze parameter werkt alleen in bestandssysteemstations.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-ReadCount

Hiermee geeft u op hoeveel regels inhoud per keer via de pijplijn worden verzonden. De standaardwaarde is 1. Een waarde van 0 (nul) verzendt alle inhoud tegelijk.

Deze parameter wijzigt de weergegeven inhoud niet, maar heeft wel invloed op de tijd die nodig is om de inhoud weer te geven. Naarmate de waarde van ReadCount toeneemt, neemt de tijd die nodig is om de eerste regel te retourneren toe, maar de totale tijd voor de bewerking neemt af. Dit kan een merkbaar verschil maken in grote items.

Type:Int64
Position:Named
Default value:1
Accept pipeline input:True
Accept wildcard characters:False
-Stream

Notitie

Deze parameter is alleen beschikbaar in Windows.

Hiermee haalt u de inhoud van de opgegeven alternatieve NTFS-bestandsstroom op uit het bestand. Voer de naam van de stream in. Jokertekens worden niet ondersteund.

Stream is een dynamische parameter die de FileSystem-provider toevoegt aan de Get-Content cmdlet. Deze parameter werkt alleen in bestandssysteemstations op Windows-systemen.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0. In PowerShell 7.2 kan Get-Content de inhoud van alternatieve gegevensstromen uit mappen en bestanden ophalen.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Tail

Hiermee geeft u het aantal regels vanaf het einde van een bestand of ander item. U kunt de parameternaam van tail of de alias Last gebruiken. Deze parameter is geïntroduceerd in PowerShell 3.0.

Type:Int32
Aliases:Last
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-TotalCount

Hiermee geeft u het aantal regels vanaf het begin van een bestand of ander item. De standaardwaarde is -1 (alle regels).

U kunt de parameternaam TotalCount of de aliassen, First of Head gebruiken.

Type:Int64
Aliases:First, Head
Position:Named
Default value:-1
Accept pipeline input:True
Accept wildcard characters:False
-Wait

Hiermee wordt het bestand geopend nadat alle bestaande regels zijn uitgevoerd. Get-Content Controleert het bestand eenmaal per seconde en voert nieuwe regels uit als dit aanwezig is. U kunt wachten onderbreken door op Ctrl+C te drukken. Het wachten eindigt ook als het bestand wordt verwijderd, in welk geval een niet-afsluitfout wordt gerapporteerd.

Wacht is een dynamische parameter die de FileSystem-provider toevoegt aan de Get-Content cmdlet. Deze parameter werkt alleen in bestandssysteemstations. Wachten kan niet worden gecombineerd met Raw.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

System.Int64, System.String[], System.Management.Automation.PSCredential

U kunt het aantal leesbewerkingen, het totale aantal, paden of referenties doorsluizen naar Get-Content.

Uitvoerwaarden

System.Byte, System.String

Get-Content retourneert tekenreeksen of bytes. Het uitvoertype is afhankelijk van het type inhoud dat u opgeeft als invoer.

Notities

De Get-Content cmdlet is ontworpen om te werken met de gegevens die door elke provider worden weergegeven. Gebruik de Get-PSProvider cmdlet om de providers in uw sessie op te halen. Zie about_Providers voor meer informatie.