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 regel voor regel gelezen en wordt een verzameling objecten geretourneerd, die elk een regel inhoud vertegenwoordigen.
Vanaf PowerShell 3.0 Get-Content
kan ook een opgegeven aantal regels vanaf het begin of einde van een item worden opgehaald.
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 door de pijplijn naar de ForEach-Object
cmdlet verzonden. ForEach-Object
gebruikt een scriptblok met de Add-Content
cmdlet om het LineNumbers.txt
bestand te maken. De variabele $_
vertegenwoordigt de matrixwaarden wanneer elk object in de pijplijn wordt verzonden. De Get-Content
cmdlet gebruikt de parameter Path om het LineNumbers.txt
bestand op te geven en geeft de inhoud weer in de PowerShell-console.
Voorbeeld 2: het aantal regels beperken Get-Content retouren
Met deze opdracht worden de eerste vijf regels van een bestand ophaalt. De parameter TotalCount wordt gebruikt om de eerste vijf regels met inhoud op te haalt. 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 inhoudsregel ophalen uit een tekstbestand
Met deze opdracht wordt een bepaald aantal regels uit een bestand opgehaald en wordt alleen de laatste regel van die inhoud weergegeven. De parameter TotalCount haalt de eerste 25 regels met 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 gewikkeld, zodat de opdracht wordt voltooid voordat u naar de volgende stap gaat. Get-Content
retourneert een matrix met regels. Hiermee kunt u de indexnotatie na het haakje 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 haalt u de laatste regel met inhoud op uit een bestand. 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 te laten zien dat u bestanden kunt doorsnijden in de Get-Content
parameter. De parameter Tail haalt de laatste regel van het bestand op. Deze methode is sneller dan het ophalen van alle regels en het gebruik van de [-1]
indexnotatie.
Voorbeeld 5: de inhoud van een alternatieve gegevensstroom ophalen
In dit voorbeeld wordt beschreven hoe u de parameter Stream 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.
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
De parameter Stream is een dynamische parameter van de bestandssysteemprovider.
Standaard worden Get-Content
alleen gegevens opgehaald uit de standaardstream of :$DATA
stroom. 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
De opdrachten in dit voorbeeld krijgen de inhoud van een bestand als één tekenreeks, in plaats van een matrix met tekenreeksen. Zonder de dynamische parameter Onbewerkt wordt inhoud standaard geretourneerd als een matrix met tekenreeksen met nieuwe regels. 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 voor de Get-Content
cmdlet opgeven. Wanneer u filters gebruikt om de path-parameter te kwalificeren, moet u een afsluitend sterretje (*
) 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 parameter Raw zorgt ervoor dat de bytes worden geretourneerd als een [System.Byte[]]
. Als de raw-parameter ontbreekt, is de retourwaarde een stroom bytes, die door PowerShell wordt geïnterpreteerd 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 parameter Encoding . De parameter AsByteStream negeert elke codering en de uitvoer wordt geretourneerd als een stroom van bytes.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
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 |
Required: | False |
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. Bij het lezen van een tekstbestand wordt Get-Content
een verzameling tekenreeksobjecten geretourneerd, die elk eindigen met een regeleindeteken. Wanneer u een scheidingsteken invoert dat niet in het bestand bestaat, Get-Content
wordt het hele bestand geretourneerd als één object zonder scheidingsteken.
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 door de bestandssysteemprovider aan de Get-Content
cmdlet wordt toegevoegd. 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. Afdwingen Get-Content
dat het hele bestand wordt geretourneerd als één tekenreeks zonder scheidingstekenreeks. Voer een waarde in die niet in het bestand bestaat.
Type: | String |
Position: | Named |
Default value: | End-of-line character |
Required: | False |
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
: maakt gebruik van de codering voor de ASCII-tekenset (7-bits).bigendianunicode
: Codeert in UTF-16-indeling met behulp van de bytevolgorde big-endian.bigendianutf32
: Codeert in UTF-32-indeling met behulp van de bytevolgorde big-endian.oem
: Maakt gebruik van 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 bestandssysteemprovider toevoegt aan de Get-Content
cmdlet.
Deze parameter is alleen beschikbaar in bestandssysteemstations.
Gebruik bij het lezen van en schrijven naar binaire bestanden de parameter AsByteStream en de waarde 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 Set-Content
cmdlet gebruikt om de bytes naar een bestand te schrijven, tenzij u de AsByteStream-parameter 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 er 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 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Hiermee geeft u, als een 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 Exclude 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 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Hiermee geeft u een filter om de path parameter te kwalificeren. De Bestandssysteemprovider is de enige geïnstalleerde PowerShell-provider die het gebruik van filters ondersteunt. 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 dat PowerShell de objecten nadat ze zijn opgehaald, moet filteren.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Met forceren wordt een kenmerk alleen-lezen overschreven of worden mappen gemaakt om een bestandspad te voltooien. Met de parameter Force wordt niet geprobeerd bestandsmachtigingen te wijzigen of beveiligingsbeperkingen te overschrijven.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Hiermee geeft u, als een tekenreeksmatrix, een item of items op die deze cmdlet in de bewerking opneemt. 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 Include 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 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LiteralPath
Hiermee geeft u een pad naar een of meer locaties. De waarde van LiteralPath wordt precies gebruikt zoals deze wordt getypt. Geen tekens worden geïnterpreteerd als jokertekens. Als het pad escape-tekens bevat, plaatst u het tussen enkele aanhalingstekens. Enkele aanhalingstekens geven PowerShell aan dat geen tekens als escape-reeksen worden geïnterpreteerd.
Zie about_Quoting_Rules voor meer informatie.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
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 zijn naar items, 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 |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Raw
Hiermee worden tekens voor nieuwe regels genegeerd en wordt de volledige inhoud van een bestand geretourneerd in één tekenreeks met behoud van de nieuwe regels. Standaard worden nieuwe regeltekens in een bestand gebruikt als scheidingstekens om de invoer te scheiden in een matrix van tekenreeksen. Deze parameter is geïntroduceerd in PowerShell 3.0.
Raw is een dynamische parameter die de bestandssysteemprovider toevoegt aan de Get-Content
cmdlet Deze parameter werkt alleen in bestandssysteemstations.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
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. Met de waarde 0 (nul) wordt alle inhoud tegelijk verzonden.
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 neemt de totale tijd voor de bewerking af. Dit kan een merkbaar verschil maken in grote items.
Type: | Int64 |
Position: | Named |
Default value: | 1 |
Required: | False |
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 door de bestandssysteemprovider aan de Get-Content
cmdlet wordt toegevoegd.
Deze parameter werkt alleen in bestandssysteemstations op Windows-systemen. Deze parameter is geïntroduceerd in Windows PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
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 naam van de Tail-parameter of de bijbehorende alias , Last, gebruiken. Deze parameter is geïntroduceerd in PowerShell 3.0.
Type: | Int32 |
Aliases: | Last |
Position: | Named |
Default value: | None |
Required: | False |
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 naam van de TotalCount-parameter of de bijbehorende aliassen , First of Head, gebruiken.
Type: | Int64 |
Aliases: | First, Head |
Position: | Named |
Default value: | -1 |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Wait
Houdt het bestand geopend nadat alle bestaande regels zijn uitgevoerd. Tijdens het wachten Get-Content
wordt het bestand eenmaal per seconde gecontroleerd en worden nieuwe regels uitgevoerd, indien aanwezig. U kunt wachten onderbreken door op Ctrl+C te drukken. Het wachten eindigt ook als het bestand wordt verwijderd. In dat geval wordt een niet-afsluitfout gerapporteerd.
Wachten is een dynamische parameter die de bestandssysteemprovider toevoegt aan de Get-Content
cmdlet. Deze parameter werkt alleen in bestandssysteemstations. Wait kan niet worden gecombineerd met Raw.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | 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, de paden of de 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 een provider worden weergegeven. Gebruik Get-PSProvider
de cmdlet om de providers in uw sessie op te halen. Zie about_Providers voor meer informatie.