Sdílet prostřednictvím


Get-Content

Získá obsah položky v zadaném umístění.

Syntaxe

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

Rutina Get-Content získá obsah položky v umístění určeném cestou, například text v souboru nebo obsah funkce. U souborů se obsah načte po jednom řádku a vrátí kolekci objektů, z nichž každý představuje řádek obsahu.

Počínaje PowerShellem 3.0 může Get-Content získat také zadaný počet řádků od začátku nebo konce položky.

Příklady

Příklad 1: Získání obsahu textového souboru

Tento příklad získá obsah souboru v aktuálním adresáři. Soubor LineNumbers.txt má 100 řádků ve formátu: Toto je řádek X a používá se v několika příkladech.

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.

Hodnoty pole 1-100 se odesílají potrubím do cmdletu ForEach-Object. ForEach-Object k vytvoření souboru Add-Content používá blok skriptu s rutinou LineNumbers.txt. Proměnná $_ představuje hodnoty pole, jak je každý objekt odesílán v potrubí. Rutina Get-Content používá parametr Path k zadání souboru LineNumbers.txt a zobrazení obsahu v konzole PowerShellu.

Příklad 2: Omezit počet řádků, které vrátí Get-Content

Tento příkaz získá prvních pět řádků souboru. Parametr TotalCount získá prvních pět řádků obsahu. Tento příklad používá LineNumbers.txt odkazované v příkladu 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

Příklad 3: Získání konkrétního řádku obsahu z textového souboru

Tento příkaz získá určitý počet řádků ze souboru a pak zobrazí pouze poslední řádek tohoto obsahu. Parametr TotalCount získá prvních 25 řádků obsahu. Tento příklad používá soubor LineNumbers.txt odkazovaný v příkladu 1.

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

This is Line 25

Příkaz Get-Content se zabalí do závorek, aby se příkaz dokončil před přechodem k dalšímu kroku. Get-Contentvrátí pole řádků, což vám umožní přidat za závorku zápis indexu, abyste získali konkrétní číslo řádku. V tomto případě index [-1] určuje poslední index ve vráceném poli 25 načtených řádků.

Příklad 4: Získání posledního řádku textového souboru

Tento příkaz získá poslední řádek obsahu ze souboru. Tento příklad používá LineNumbers.txt soubor vytvořený v příkladu 1.

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

This is Line 100

Tento příklad používá rutinu Get-Item k předvedení, že soubory můžete převést do Get-Content. Parametr Tail získá poslední řádek souboru. Tato metoda je rychlejší než načítání všech řádků do proměnné a používání notace indexu [-1].

Příklad 5: Získání obsahu alternativního datového streamu

Tento příklad popisuje, jak pomocí parametru Stream získat obsah alternativního datového streamu pro soubory uložené na svazku Windows NTFS. V tomto příkladu se rutina Set-Content používá k vytvoření ukázkového obsahu v souboru s názvem 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

Parametr Stream je dynamický parametr poskytovatele FileSystem . Ve výchozím nastavení Get-Content načítá pouze data z výchozího nebo :$DATA streamu dat. streamy lze použít k ukládání skrytých dat, jako jsou atributy, nastavení zabezpečení nebo jiná data. Mohou být také uloženy v adresářích, aniž by byly považovány za podřízené položky.

Příklad 6: Získání nezpracovaných obsahu

Příkazy v tomto příkladu získají obsah souboru jako jeden řetězec místo pole řetězců. Ve výchozím nastavení se obsah bez dynamického parametru raw vrátí jako pole řetězců oddělených novým řádkem. Tento příklad používá soubor LineNumbers.txt odkazovaný v příkladu 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.

Příklad 7: Použití filtrů s Get-Content

Můžete zadat filtr pro rutinu Get-Content. Při použití filtrů k kvalifikaci parametru Path musíte zahrnout koncovou hvězdičku (*), která označuje obsah cesty.

Následující příkaz získá obsah všech *.log souborů v adresáři C:\Temp.

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

Příklad 8: Získání obsahu souboru jako pole bajtů

Tento příklad ukazuje, jak získat obsah souboru jako [byte[]] jako jeden 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)

První příkaz používá parametr AsByteStream k získání datového proudu bajtů ze souboru. Parametr Raw zajišťuje, že bajty budou vráceny jako [System.Byte[]]. Pokud parametr Raw chybí, návratová hodnota je datový proud bajtů, který powershell interpretuje jako [System.Object[]].

Parametry

-AsByteStream

Určuje, že obsah by se měl číst jako datový proud bajtů. Parametr AsByteStream byl zaveden v prostředí Windows PowerShell 6.0.

K upozornění dojde, když použijete parametr AsByteStream s parametrem Encoding. Parametr AsByteStream ignoruje kódování a výstup se vrátí jako datový proud bajtů.

Při čtení z binárních souborů a zápisu do binárních souborů použijte parametr AsByteStream a hodnotu 0 pro parametr ReadCount. Hodnota ReadCount s hodnotou 0 přečte celý soubor v rámci jedné operace čtení. Výchozí ReadCount hodnotu 1 přečte jeden bajt v každé operaci čtení a převede každý bajt na samostatný objekt. Propojení výstupu s jedním bajtem do Set-Content způsobí chyby, pokud nepoužíváte parametr AsByteStream s Set-Content.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Credential

Poznámka

Tento parametr nejsou podporovány žádnými poskytovateli nainstalovanými v PowerShellu. Pokud chcete zosobnit jiného uživatele nebo zvýšit oprávnění při spuštění této rutiny, použijte Invoke-Command.

Typ:PSCredential
Position:Named
Default value:Current user
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Delimiter

Určuje oddělovač, který Get-Content používá k rozdělení souboru na objekty při čtení. Výchozí hodnota je \n, znak konce řádku. Při čtení textového souboru Get-Content vrátí kolekci řetězcových objektů, přičemž každý končí znakem konce řádku. Když zadáte oddělovač, který v souboru neexistuje, Get-Content vrátí celý soubor jako jeden nedemitovaný objekt.

Tento parametr můžete použít k rozdělení velkého souboru na menší soubory zadáním oddělovače souborů jako oddělovače. Oddělovač se zachová (nezahodí) a stane se poslední položkou v každé části souboru.

Oddělovač je dynamický parametr, který poskytovatel FileSystem přidává k rutině Get-Content. Tento parametr funguje jenom na jednotkách systému souborů.

Poznámka

Pokud je hodnota parametru Delimiter prázdným řetězcem, Get-Content nic nevrací. Jedná se o známý problém. Pro vynucení, aby Get-Content vrátil celý soubor jako jeden nedělený řetězec. Zadejte hodnotu, která v souboru neexistuje.

Typ:String
Position:Named
Default value:End-of-line character
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Encoding

Určuje typ kódování cílového souboru. Výchozí hodnota je utf8NoBOM.

Přijatelné hodnoty pro tento parametr jsou následující:

  • ascii: Používá kódování znakové sady ASCII (7bitová).
  • ansi: Používá kódování pro znakovou stránku ANSI aktuální kultury. Tato možnost byla přidána v PowerShellu 7.4.
  • bigendianunicode: Kóduje ve formátu UTF-16 s použitím pořadí bajtů big-endian.
  • bigendianutf32: Kóduje ve formátu UTF-32 pomocí big-endian pořadí bajtů.
  • oem: Používá výchozí kódování pro MS-DOS a konzolové programy.
  • unicode: Kóduje ve formátu UTF-16 pomocí pořadí malých bajtů.
  • utf7: Kóduje ve formátu UTF-7.
  • utf8: Kóduje ve formátu UTF-8.
  • utf8BOM: Kódování ve formátu UTF-8 pomocí značky pořadí bajtů (BOM)
  • utf8NoBOM: Kódování ve formátu UTF-8 bez značky pořadí bajtů (BOM)
  • utf32: Kóduje ve formátu UTF-32.

Kódování je dynamický parametr, který zprostředkovatel fileSystem přidá do rutiny Get-Content. Tento parametr je k dispozici pouze na jednotkách systému souborů.

Počínaje PowerShellem 6.2 umožňuje parametr Encoding také číselné ID registrovaných znakových stránek (například -Encoding 1251) nebo názvy řetězců registrovaných znakových stránek (například -Encoding "windows-1251"). Další informace naleznete v dokumentaci .NET pro Encoding.CodePage.

Počínaje PowerShellem 7.4 můžete použít hodnotu Ansi parametru Encoding a předat číselné ID pro znakovou stránku ANSI aktuální jazykové verze, aniž byste ji museli zadávat ručně.

Poznámka

UTF-7* se už nedoporučuje používat. Od PowerShellu 7.1 se zapíše upozornění, pokud pro parametr utf7 zadáte .

Typ:Encoding
Přípustné hodnoty:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Exclude

Určuje, jako pole řetězců, položku nebo položky, které tato rutina vylučuje v operaci. Hodnota tohoto parametru kvalifikuje parametr Path.

Zadejte prvek cesty nebo vzor, například *.txt. Jsou povoleny zástupné znaky.

Parametr Exclude je efektivní pouze v případě, že příkaz obsahuje obsah položky, například C:\Windows\*, kde zástupný znak určuje obsah adresáře C:\Windows.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

-Filter

Určuje filtr pro kvalifikaci parametru Path. Zprostředkovatel FileSystem je jediným nainstalovaným poskytovatelem PowerShellu, který podporuje použití filtrů. Syntaxi jazyka filtru FileSystem najdete v about_Wildcards. Filtry jsou efektivnější než jiné parametry, protože je poskytovatel použije, když rutina získá objekty místo toho, aby objekty po jejich načtení vyfiltrovala PowerShell.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

-Force

Funkce může přepsat atribut pouze pro čtení nebo vytvořit adresáře pro dokončení cesty k souboru. Parametr Force se nepokouší změnit oprávnění souboru nebo přepsat omezení zabezpečení.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Include

Specifikuje, ve formě pole řetězců, položku nebo položky, které tento cmdlet zahrnuje v operaci. Hodnota tohoto parametru kvalifikuje parametr Path. Zadejte prvek cesty nebo vzor, například "*.txt". Jsou povoleny zástupné znaky. Parametr Include je efektivní pouze v případě, že příkaz obsahuje obsah položky, například C:\Windows\*, kde zástupný znak určuje obsah adresáře C:\Windows.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:True

-LiteralPath

Určuje cestu k jednomu nebo více umístěním. Hodnota LiteralPath se používá přesně tak, jak je zadána. Žádné znaky nejsou interpretovány jako zástupné znaky. Pokud cesta obsahuje escape znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, aby nepřekládaly žádné znaky jako řídicí sekvence.

Další informace najdete v tématu about_Quoting_Rules.

Typ:String[]
Aliasy:PSPath, LP
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Path

Určuje cestu k položce, kde Get-Content získá obsah. Jsou povoleny zástupné znaky. Cesty musí být cesty k položkám, nikoli ke kontejnerům. Musíte například zadat cestu k jednomu nebo více souborům, nikoli cestě k adresáři.

Typ:String[]
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:True

-Raw

Ignoruje znaky nového řádku a vrátí celý obsah souboru v jednom řetězci se zachovanými novými spojnicemi. Ve výchozím nastavení se znaky nového řádku v souboru používají jako oddělovače pro rozdělení vstupu do pole řetězců. Tento parametr byl představen v PowerShellu 3.0.

Raw je dynamický parametr, který poskytovatel FileSystem přidá do rutiny Get-Content Tento parametr funguje jenom na jednotkách systému souborů.

Typ:SwitchParameter
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-ReadCount

Určuje, kolik řádků obsahu se odesílá kanálem najednou. Výchozí hodnota je 1. Hodnota 0 (nula) nebo záporná čísla odešle veškerý obsah najednou.

Tento parametr nemění zobrazený obsah, ale má vliv na dobu potřebnou k zobrazení obsahu. S rostoucí hodnotou ReadCount se zvýší doba, kterou trvá vrácení prvního řádku, ale celková doba operace se sníží. To může způsobit znatelný rozdíl u velkých položek.

Typ:Int64
Position:Named
Default value:1
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Stream

Poznámka

Tento parametr je k dispozici pouze ve Windows.

Získá obsah zadaného alternativního datového proudu souboru NTFS ze souboru. Zadejte název datového proudu. Zástupné znaky nejsou podporované.

Stream je dynamický parametr, který zprostředkovatel FileSystem přidá do rutiny Get-Content. Tento parametr funguje jenom na jednotkách systému souborů v systémech Windows.

Tento parametr byl představen ve Windows PowerShellu 3.0. V PowerShellu 7.2 může Get-Content načíst obsah alternativních datových proudů z adresářů a souborů.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Tail

Určuje počet řádků od konce souboru nebo jiné položky. Můžete použít název parametru Tail nebo jeho alias Last. Hodnota 0 nevrací žádné řádky. Záporné hodnoty způsobují chybu.

Tento parametr byl představen v PowerShellu 3.0.

Typ:Int32
Aliasy:Last
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-TotalCount

Určuje počet řádků od začátku souboru nebo jiné položky. Hodnota 0 nevrací žádné řádky. Záporné hodnoty způsobují chybu.

Můžete použít název parametru TotalCount nebo jeho aliasy, First nebo Head.

Typ:Int64
Aliasy:First, Head
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Wait

Způsobí, že rutina čeká neomezeně dlouho a udržuje soubor otevřený, dokud není přerušena. Během čekání Get-Content kontroluje soubor jednou za sekundu a vypisuje nové řádky, pokud jsou k dispozici. Pokud se používá s parametrem TotalCount, Get-Content počká, dokud v zadaném souboru nebude dostupný zadaný počet řádků. Pokud například zadáte TotalCount 10 a soubor už má 10 nebo více řádků, Get-Content vrátí 10 řádků a ukončí se. Pokud má soubor méně než 10 řádků, Get-Content vypíše každý řádek, jakmile dorazí, ale před ukončením čeká až na doručení desátého řádku.

Čekání můžete přerušit stisknutím kláves Ctrl+C. Odstraněním souboru dojde k neukončující chybě, která přeruší čekání.

Wait je dynamický parametr, který zprostředkovatel FileSystem přidá do rutiny Get-Content. Tento parametr funguje jenom na jednotkách systému souborů. Wait nelze kombinovat s Raw.

Typ:SwitchParameter
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

Int64

Počet čtení nebo celkový počet můžete přesměrovat do této cmdletu.

String[]

K tomuto cmdletu můžete připojit cesty.

PSCredential

K tomuto cmdletu můžete připojit přihlašovací údaje.

Výstupy

Byte

Pokud použijete parametr AsByteStream, vrátí tato rutina obsah jako bajty.

String

Ve výchozím nastavení vrátí tato rutina obsah jako pole řetězců, jednu na řádek. Když použijete parametr Raw, vrátí jeden řetězec obsahující každý řádek v souboru.

Poznámky

PowerShell obsahuje následující aliasy pro Get-Content:

  • Všechny platformy:
    • gc
    • type
  • Windows:
    • cat

Rutina Get-Content je navržená tak, aby fungovala s daty vystavenými jakýmkoli poskytovatelem. Pokud chcete zprostředkovatele získat ve vaší relaci, použijte rutinu Get-PSProvider. Další informace naleznete v tématu about_Providers.