Dela via


Get-Content

Hämtar innehållet i objektet på den angivna platsen.

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

Cmdleten Get-Content hämtar innehållet i objektet på den plats som anges av sökvägen, till exempel texten i en fil eller innehållet i en funktion. För filer läss innehållet en rad i taget och returnerar en samling objekt som var och en representerar en innehållsrad.

Från och med PowerShell 3.0 Get-Content kan även hämta ett angivet antal rader från början eller slutet av ett objekt.

Exempel

Exempel 1: Hämta innehållet i en textfil

Det här exemplet hämtar innehållet i en fil i den aktuella katalogen. Filen LineNumbers.txt har 100 rader i formatet, det här är rad X och används i flera exempel.

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.

Matrisvärdena 1–100 skickas ned i pipelinen till cmdleten ForEach-Object . ForEach-Object använder ett skriptblock med cmdleten Add-ContentLineNumbers.txt för att skapa filen. Variabeln $_ representerar matrisvärdena när varje objekt skickas nedåt i pipelinen. Cmdleten Get-Content använder parametern Path för att ange LineNumbers.txt filen och visar innehållet i PowerShell-konsolen.

Exempel 2: Begränsa antalet rader Get-Content returnerar

Det här kommandot hämtar de första fem raderna i en fil. Parametern TotalCount hämtar de första fem raderna med innehåll. I det här exemplet används refererade LineNumbers.txt i exempel 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

Exempel 3: Hämta en specifik innehållsrad från en textfil

Det här kommandot hämtar ett visst antal rader från en fil och visar sedan endast den sista raden i innehållet. Parametern TotalCount hämtar de första 25 raderna med innehåll. I det här exemplet används filen LineNumbers.txt som refereras i exempel 1.

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

This is Line 25

Kommandot Get-Content omsluts av parenteser så att kommandot slutförs innan du går till nästa steg. Get-Contentreturnerar en matris med rader, vilket gör att du kan lägga till indexnotationen efter parentesen för att hämta ett specifikt radnummer. I det här fallet anger indexet [-1] det sista indexet i den returnerade matrisen med 25 hämtade rader.

Exempel 4: Hämta den sista raden i en textfil

Det här kommandot hämtar den sista innehållsraden från en fil. I det LineNumbers.txt här exemplet används filen som skapades i exempel 1.

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

This is Line 100

I det här exemplet används cmdleten Get-Item för att visa att du kan skicka filer till Get-Content. Tail-parametern hämtar den sista raden i filen. Den här metoden är snabbare än att hämta alla rader i en variabel och använda indexnotationen [-1] .

Exempel 5: Hämta innehållet i en alternativ dataström

I det här exemplet beskrivs hur du använder parametern Stream för att hämta innehållet i en alternativ dataström för filer som lagras på en Windows NTFS-volym. I det här exemplet används cmdleten Set-Content för att skapa exempelinnehåll i en fil med namnet 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

Parametern Stream är en dynamisk parameter för FileSystem-providern. Som standard Get-Content hämtar endast data från standardvärdet eller :$DATA dataströmmen. Strömmar kan användas för att lagra dolda data, till exempel attribut, säkerhetsinställningar eller andra data. De kan också lagras på kataloger utan att vara underordnade objekt.

Exempel 6: Hämta råinnehåll

Kommandona i det här exemplet hämtar innehållet i en fil som en sträng i stället för en matris med strängar. Utan den dynamiska raw-parametern returneras som standard innehållet som en matris med strängar som avgränsas med ny rad. I det här exemplet används filen LineNumbers.txt som refereras i exempel 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.

Exempel 7: Använd filter med Get-Content

Du kan ange ett filter för cmdleten Get-Content . När du använder filter för att kvalificera parametern Path måste du inkludera en avslutande asterisk (*) för att ange innehållet i sökvägen.

Följande kommando hämtar innehållet i alla *.log filer i C:\Temp katalogen.

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

Exempel 8: Hämta filinnehåll som en bytematris

Det här exemplet visar hur du hämtar innehållet i en fil som ett [byte[]] enda objekt.

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

Det första kommandot använder parametern AsByteStream för att hämta byteströmmen från filen. Raw-parametern säkerställer att byte returneras som en [System.Byte[]]. Om parametern Raw saknades är returvärdet en ström med byte, vilket tolkas av PowerShell som [System.Object[]].

Parametrar

-AsByteStream

Anger att innehållet ska läsas som en ström med byte. Parametern AsByteStream introducerades i Windows PowerShell 6.0.

En varning visas när du använder parametern AsByteStream med parametern Encoding . Parametern AsByteStream ignorerar all kodning och utdata returneras som en ström med byte.

När du läser från och skriver till binära filer använder du parametern AsByteStream och värdet 0 för parametern ReadCount . Ett ReadCount-värde på 0 läser hela filen i en enda läsåtgärd. Standardvärdet för ReadCount , 1, läser en byte i varje läsåtgärd och konverterar varje byte till ett separat objekt. Att skicka single-byte-utdata orsakar Set-Content fel om du inte använder parametern AsByteStream med Set-Content.

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

-Credential

Anteckning

Den här parametern stöds inte av leverantörer som är installerade med PowerShell. Om du vill personifiera en annan användare eller höja dina autentiseringsuppgifter när du kör den här cmdleten använder du Invoke-Command.

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

-Delimiter

Anger avgränsare som Get-Content använder för att dela upp filen i objekt medan den läser. Standardvärdet är \n, radslutstecknet. När du läser en textfil Get-Content returneras en samling strängobjekt, var och en slutar med ett radslutstecken. När du anger en avgränsare som inte finns i filen Get-Content returneras hela filen som ett enda, avgränsat objekt.

Du kan använda den här parametern för att dela upp en stor fil i mindre filer genom att ange en filavgränsare som avgränsare. Avgränsare bevaras (tas inte bort) och blir det sista objektet i varje filavsnitt.

Avgränsare är en dynamisk parameter som FileSystem-providern lägger till i cmdleten Get-Content . Den här parametern fungerar bara på filsystemenheter.

Anteckning

När värdet för parametern Avgränsare för närvarande är en tom sträng Get-Content returneras för närvarande ingenting. Detta är ett känt problem. Framtvinga Get-Content att hela filen returneras som en enda, icke avgränsad sträng. Ange ett värde som inte finns i filen.

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

-Encoding

Anger typ av kodning för målfilen. Standardvärdet är utf8NoBOM.

Godkända värden för den här parametern är följande:

  • ascii: Använder kodningen för ASCII-teckenuppsättningen (7-bitars).
  • ansi: Använder kodningen för för den aktuella kulturens ANSI-kodsida. Det här alternativet har lagts till i PowerShell 7.4.
  • bigendianunicode: Kodar i UTF-16-format med hjälp av den stora byteordningen.
  • bigendianutf32: Kodar i UTF-32-format med hjälp av den stora byteordningen.
  • oem: Använder standardkodning för MS-DOS och konsolprogram.
  • unicode: Kodar i UTF-16-format med den little-endianska byteordningen.
  • utf7: Kodar i UTF-7-format.
  • utf8: Kodar i UTF-8-format.
  • utf8BOM: Kodar i UTF-8-format med BOM (Byte Order Mark)
  • utf8NoBOM: Kodar i UTF-8-format utan bom (Byte Order Mark)
  • utf32: Kodar i UTF-32-format.

Kodning är en dynamisk parameter som FileSystem-providern lägger till i cmdleten Get-Content . Den här parametern är endast tillgänglig på filsystemenheter.

Från och med PowerShell 6.2 tillåter kodningsparametern även numeriska ID:er för registrerade kodsidor (till exempel -Encoding 1251) eller strängnamn för registrerade kodsidor (till exempel -Encoding "windows-1251"). Mer information finns i .NET-dokumentationen för Encoding.CodePage.

Från och med PowerShell 7.4 kan du använda Ansi värdet för kodningsparametern för att skicka det numeriska ID:t för den aktuella kulturens ANSI-kodsida utan att behöva ange det manuellt.

Anteckning

UTF-7* rekommenderas inte längre att använda. Från och med PowerShell 7.1 skrivs en varning om du anger utf7 för kodningsparametern .

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

Anger, som en strängmatris, ett objekt eller objekt som denna cmdlet exkluderar i åtgärden. Värdet för den här parametern kvalificerar parametern Path .

Ange ett sökvägselement eller mönster, till exempel *.txt. Jokertecken tillåts.

Parametern Exkludera gäller endast när kommandot innehåller innehållet i ett objekt, till exempel C:\Windows\*, där jokertecknet anger innehållet i C:\Windows katalogen.

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

-Filter

Anger ett filter för att kvalificera parametern Path . FileSystem-providern är den enda installerade PowerShell-providern som stöder användning av filter. Du hittar syntaxen för filterspråket FileSystem i about_Wildcards. Filter är mer effektiva än andra parametrar, eftersom providern tillämpar dem när cmdleten hämtar objekten i stället för att Låta PowerShell filtrera objekten efter att de har hämtats.

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

-Force

Force kan åsidosätta ett skrivskyddat attribut eller skapa kataloger för att slutföra en filsökväg. Parametern Force försöker inte ändra filbehörigheter eller åsidosätta säkerhetsbegränsningar.

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

-Include

Anger, som en strängmatris, ett objekt eller objekt som denna cmdlet innehåller i åtgärden. Värdet för den här parametern kvalificerar parametern Path . Ange ett sökvägselement eller mönster, till exempel "*.txt". Jokertecken tillåts. Parametern Include gäller endast när kommandot innehåller innehållet i ett objekt, till exempel C:\Windows\*, där jokertecknet anger innehållet i C:\Windows katalogen.

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

-LiteralPath

Anger en sökväg till en eller flera platser. Värdet för LiteralPath används exakt som det skrivs. Inga tecken tolkas som jokertecken. Om sökvägen innehåller escape-tecken omger du den med enkla citattecken. Enkla citattecken talar om för PowerShell att inga tecken ska tolkas som escape-sekvenser.

Mer information finns i about_Quoting_Rules.

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

-Path

Anger sökvägen till ett objekt där Get-Content innehållet hämtas. Jokertecken tillåts. Sökvägarna måste vara sökvägar till objekt, inte till containrar. Du måste till exempel ange en sökväg till en eller flera filer, inte en sökväg till en katalog.

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

-Raw

Ignorerar nya radtecken och returnerar hela innehållet i en fil i en sträng med de nya raderna bevarade. Som standard används nyradstecken i en fil som avgränsare för att separera indata i en matris med strängar. Den här parametern introducerades i PowerShell 3.0.

Raw är en dynamisk parameter som FileSystem-providern lägger till i cmdleten Get-Content Den här parametern fungerar bara på filsystemenheter.

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

-ReadCount

Anger hur många rader innehåll som skickas via pipelinen åt gången. Standardvärdet är 1. Värdet 0 (noll) eller negativa tal skickar allt innehåll samtidigt.

Den här parametern ändrar inte innehållet som visas, men det påverkar den tid det tar att visa innehållet. När värdet för ReadCount ökar ökar den tid det tar att returnera den första raden, men den totala tiden för åtgärden minskar. Detta kan göra en märkbar skillnad i stora objekt.

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

-Stream

Anteckning

Den här parametern är endast tillgänglig i Windows.

Hämtar innehållet i den angivna alternativa NTFS-filströmmen från filen. Ange namnet på strömmen. Jokertecken stöds inte.

Stream är en dynamisk parameter som FileSystem-providern lägger till i cmdletenGet-Content. Den här parametern fungerar bara på filsystemenheter på Windows-system.

Den här parametern introducerades i Windows PowerShell 3.0. I PowerShell 7.2 Get-Content kan hämta innehållet i alternativa dataströmmar från kataloger och filer.

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

-Tail

Anger antalet rader från slutet av en fil eller ett annat objekt. Du kan använda tailparameternamnet eller dess alias , Last. Negativa värden gör att cmdleten returnerar hela innehållet.

Den här parametern introducerades i PowerShell 3.0.

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

-TotalCount

Anger antalet rader från början av en fil eller ett annat objekt. Negativa värden gör att cmdleten returnerar hela innehållet.

Du kan använda parameternamnet för TotalCount eller dess alias, First eller Head.

Type:Int64
Aliases:First, Head
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Wait

Gör att cmdleten väntar på obestämd tid och håller filen öppen tills den avbryts. I väntan Get-Content kontrollerar du filen en gång per sekund och matar ut nya rader om de finns. När det används med parametern Get-ContentTotalCount väntar tills det angivna antalet rader är tillgängliga i den angivna filen. Om du till exempel anger ett TotalCount på 10 och filen redan har 10 eller fler rader, Get-Content returnerar de 10 raderna och avslutar. Om filen har färre än 10 rader matar Get-Content varje rad ut när den tas emot, men väntar tills den tionde raden kommer innan den avslutas.

Du kan avbryta Vänta genom att trycka på Ctrl+C. Om du tar bort filen uppstår ett icke-avslutande fel som också avbryter väntan.

Wait är en dynamisk parameter som FileSystem-providern lägger till i cmdleten Get-Content . Den här parametern fungerar bara på filsystemenheter. Vänta kan inte kombineras med Raw.

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

Indata

Int64

Du kan skicka antalet läsningar eller totalt antal till den här cmdleten.

String[]

Du kan skicka sökvägar till den här cmdleten.

PSCredential

Du kan skicka autentiseringsuppgifter till den här cmdleten.

Utdata

Byte

När du använder parametern AsByteStream returnerar den här cmdleten innehållet som byte.

String

Som standard returnerar den här cmdleten innehållet som en matris med strängar, en per rad. När du använder raw-parametern returneras en sträng som innehåller varje rad i filen.

Kommentarer

PowerShell innehåller följande alias för Get-Content:

  • Alla plattformar:
    • gc
    • type
  • Windows:
    • cat

Cmdleten Get-Content är utformad för att fungera med data som exponeras av alla leverantörer. Om du vill hämta providrar i sessionen använder du cmdleten Get-PSProvider . Mer information finns i about_Providers.