Get-Content
Hiermee haalt u de inhoud van het item op de opgegeven locatie op.
Syntaxis
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 kunt Get-Content
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 bestand LineNumbers.txt
heeft 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 arraywaarden 1-100 worden via de pijplijn naar de cmdlet ForEach-Object
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 omlaag wordt verzonden in de pijplijn. De Get-Content
-cmdlet gebruikt de parameter Path om het LineNumbers.txt
-bestand op te geven en de inhoud weer te geven in de PowerShell-console.
Voorbeeld 2: Het aantal regels dat Get-Content retourneert beperken
Met dit commando worden de eerste vijf regels van een bestand opgehaald. De parameter TotalCount haalt de eerste vijf regels inhoud op. In dit voorbeeld wordt de LineNumbers.txt
gebruikt waarnaar wordt verwezen 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 bepaald aantal regels uit een bestand opgehaald 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 waarnaar wordt verwezen 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-Content
retourneert een array van lijnen, hiermee kunt u de indexnotatie na de haakjes toevoegen om een specifiek lijnnummer 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 met 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 cmdlet Get-Item
gebruikt om aan te tonen dat u bestanden kunt doorsluisen naar Get-Content
. De parameter Tail haalt de laatste regel van het bestand op. Deze methode is sneller dan het ophalen van alle regels in een variabele en het gebruik van de [-1]
index notatie.
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 Set-Content
gebruikt om voorbeeldinhoud te maken in een bestand met de 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 stream.
# Note the single quotes to prevent variable substitution.
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
# Use the Stream parameter of Add-Content to create a new Stream containing sample
# content.
$addContentSplat = @{
Path = '.\Stream.txt'
Stream = 'NewStream'
Value = 'Added a stream named NewStream to Stream.txt'
}
Add-Content @addContentSplat
# 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 FileSystem-provider.
Standaard haalt Get-Content
alleen gegevens op uit de standaard- 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 subitems 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 Raw dynamische parameter geretourneerd als een array van tekenreeksen gescheiden door nieuwe regels. In dit voorbeeld wordt het LineNumbers.txt
-bestand gebruikt waarnaar wordt verwezen 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 parameter Pad te kwalificeren, moet u een sterretje aan het einde (*
) opnemen om de inhoud van het pad aan te geven.
Met de volgende opdracht wordt de inhoud van alle *.log
bestanden in de map C:\Temp
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 een [byte[]]
als éé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 van bytes uit het bestand op te halen. De parameter Raw zorgt ervoor dat de bytes worden geretourneerd als een [System.Byte[]]
. Als de parameter Raw ontbreekt, is de retourwaarde een stroom van 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 alle coderingen en de uitvoer wordt geretourneerd als een stroom bytes.
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 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. Als u de uitvoer van één byte naar Set-Content
sluist, worden er fouten veroorzaakt, tenzij u de parameter AsByteStream met Set-Content
gebruikt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | 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 |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Delimiter
Hiermee geeft u het scheidingsteken op dat Get-Content
gebruikt om het bestand te verdelen in objecten terwijl het wordt gelezen. De standaardwaarde is \n
, het einde van het regelteken. Wanneer u een tekstbestand leest, retourneert Get-Content
een verzameling tekenreeksobjecten, die eindigen op een einde van de regel. Wanneer u een scheidingsteken invoert dat niet in het bestand bestaat, retourneert Get-Content
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, retourneert Get-Content
niets. Dit is een bekend probleem. Om af te dwingen dat Get-Content
het hele bestand als één niet-gescheiden tekenreeks retourneert. Voer een waarde in die niet in het bestand bestaat.
Type: | String |
Position: | Named |
Default value: | End-of-line character |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | 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). -
ansi
: gebruikt de codering voor de ANSI-codepagina van de huidige cultuur. Deze optie is toegevoegd in PowerShell 7.4. -
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 de bytevolgorde little-endian. -
utf7
: Codeert in UTF-7-formaat. -
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.
Vanaf PowerShell 6.2 staat de parameter Coderings- 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.CodePagevoor meer informatie.
Vanaf PowerShell 7.4 kunt u de Ansi
waarde voor de -coderingsparameter gebruiken om de numerieke id voor de ANSI-codepagina van de huidige cultuur door te geven zonder deze handmatig op te geven.
Notitie
UTF-7* wordt niet meer aanbevolen om te gebruiken. Vanaf PowerShell 7.1 wordt een waarschuwing geschreven als u utf7
opgeeft voor de parameter codering.
Type: | Encoding |
Geaccepteerde waarden: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Exclude
Geeft, als een tekenreeksarray, één of meerdere items op die door deze cmdlet worden uitgesloten bij de bewerking. De waarde van deze parameter komt in aanmerking voor de parameter Path.
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 |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | True |
-Filter
Hiermee geeft u een filter op om de parameter Path te kwalificeren. De FileSystem-provider is de enige geïnstalleerde PowerShell-provider die het gebruik van filters ondersteunt. U kunt de syntaxis voor de filesystem-filtertaal vinden in about_Wildcards. Filters zijn efficiënter dan andere parameters, omdat de provider deze 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 |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | True |
-Force
Force kan een alleen-lezen kenmerk overschrijven of mappen aanmaken om een bestandspad te voltooien. De parameter Forceren probeert geen bestandsmachtigingen te wijzigen of beveiligingsbeperkingen te overschrijven.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Include
Hiermee specificeert u, als tekenreeks-array, een of meer items die deze cmdlet in de bewerking opneemt. De waarde van deze parameter komt in aanmerking voor de parameter Path. 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 |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | True |
-LiteralPath
Hiermee geeft u een pad naar een of meer locaties. De waarde van LiteralPath- wordt precies gebruikt zoals deze is getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escapetekens bevat, dient u het tussen enkele aanhalingstekens te plaatsen. Enkele aanhalingstekens geven PowerShell aan dat geen tekens als escape-sequenties moeten worden geïnterpreteerd.
Zie about_Quoting_Rulesvoor meer informatie.
Type: | String[] |
Aliassen: | PSPath, LP |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Path
Hiermee geeft u het pad naar een item op waar Get-Content
de inhoud ophaalt. 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 |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | True |
-Raw
Negeert nieuwe regeltekens en retourneert de volledige inhoud van een bestand in één tekenreeks, waarbij de nieuwe regels behouden blijven. Standaard worden newlinetekens in een bestand 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 de bestandssysteemstations.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-ReadCount
Hiermee geeft u aan hoeveel regels inhoud er per keer via de pijplijn worden verzonden. De standaardwaarde is 1. Een waarde van 0 (nul) of negatieve getallen verzendt alle inhoud tegelijk.
Met deze parameter wordt de weergegeven inhoud niet gewijzigd, maar dit 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 |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | 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. Wildcards worden niet ondersteund.
Stream- is een dynamische parameter die door de bestandssysteemprovider wordt toegevoegd 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 kunnen Get-Content
de inhoud van alternatieve gegevensstromen ophalen uit mappen en bestanden.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Tail
Specificeert het aantal regels vanaf het einde van een bestand of ander item. U kunt de Tail-parameter of zijn alias, Last, gebruiken. Een waarde van 0
retourneert geen regels. Negatieve waarden veroorzaken een fout.
Deze parameter is geïntroduceerd in PowerShell 3.0.
Type: | Int32 |
Aliassen: | Last |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-TotalCount
Hiermee geeft u het aantal regels vanaf het begin van een bestand of ander item. Een waarde van 0
retourneert geen regels. Negatieve waarden veroorzaken een fout.
U kunt de parameternaam TotalCount of de aliassen First of Headgebruiken.
Type: | Int64 |
Aliassen: | First, Head |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Wait
Zorgt ervoor dat de cmdlet voor onbepaalde tijd wacht, waardoor het bestand geopend blijft totdat het wordt onderbroken. Tijdens het wachten controleert Get-Content
het bestand eenmaal per seconde en worden nieuwe regels uitgevoerd als deze aanwezig zijn. Wanneer deze wordt gebruikt met de parameter TotalCount, wacht Get-Content
tot het opgegeven aantal regels beschikbaar is in het opgegeven bestand. Als u bijvoorbeeld een TotalCount- van 10 opgeeft en het bestand al 10 of meer regels heeft, retourneert Get-Content
de 10 regels en wordt afgesloten. Als het bestand minder dan 10 regels heeft, geeft Get-Content
elke regel weer zodra deze binnenkomt, maar wacht tot de tiende regel binnenkomt voordat Get-Content
afgesloten wordt.
U kunt het wachten onderbreken door op Ctrl+Cte drukken. Wanneer u het bestand verwijdert, treedt er een niet-afsluitende fout op die ook het wachten onderbreekt.
Wait is een dynamische parameter die de FileSystem-provider 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 |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt het aantal gelezen regels of het totale aantal naar deze cmdlet pijpen.
String[]
U kunt paden naar deze cmdlet doorsturen.
U kunt referenties doorsturen naar deze cmdlet.
Uitvoerwaarden
Wanneer u de parameter AsByteStream gebruikt, retourneert deze cmdlet de inhoud als bytes.
Deze cmdlet retourneert standaard de inhoud als een matrix met tekenreeksen, één per regel. Wanneer u de parameter Raw gebruikt, wordt één tekenreeks geretourneerd die elke regel in het bestand bevat.
Notities
PowerShell bevat de volgende aliassen voor Get-Content
:
- Alle platforms:
gc
type
- Ramen:
cat
De cmdlet Get-Content
is ontworpen om te werken met de gegevens die door elke provider worden weergegeven. Gebruik de cmdlet Get-PSProvider
om de providers in uw sessie op te halen. Zie about_Providersvoor meer informatie.