Get-Content

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

Syntax

Get-Content
   [-ReadCount <Int64>]
   [-TotalCount <Int64>]
   [-Tail <Int32>]
   [-Path] <String[]>
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Force]
   [-Credential <PSCredential>]
   [-UseTransaction]
   [-Delimiter <String>]
   [-Wait]
   [-Raw]
   [-Encoding <FileSystemCmdletProviderEncoding>]
   [-Stream <String>]
   [<CommonParameters>]
Get-Content
   [-ReadCount <Int64>]
   [-TotalCount <Int64>]
   [-Tail <Int32>]
   -LiteralPath <String[]>
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Force]
   [-Credential <PSCredential>]
   [-UseTransaction]
   [-Delimiter <String>]
   [-Wait]
   [-Raw]
   [-Encoding <FileSystemCmdletProviderEncoding>]
   [-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 Get-Content můžete 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á ve formátu 100 řádků, 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 do rutiny ForEach-Object odesílají do kanálu. ForEach-Object používá blok skriptu s rutinou Add-Content k vytvoření LineNumbers.txt souboru. Proměnná $_ představuje hodnoty pole, protože každý objekt je odeslán v kanálu. Rutina Get-Content pomocí parametru Path určuje LineNumbers.txt soubor a zobrazí obsah v konzole PowerShellu.

Příklad 2: Omezení počtu řádků, které vrátí funkce 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á odkazovaný v příkladu LineNumbers.txt 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 odkazovaný v příkladu LineNumbers.txt 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í matici řádků, což umožňuje přidat zápis indexu za závorky pro načtení konkrétního čísla řádku. V tomto případě [-1] index určuje poslední index ve vrácené matici 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á soubor vytvořený v příkladu LineNumbers.txt 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 na Get-Content. Parametr Tail získá poslední řádek souboru. Tato metoda je rychlejší než načtení všech řádků v proměnné a použití zápisu 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 systém Windows NT FS. 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 zprostředkovatele FileSystem. Ve výchozím nastavení Get-Content načítá pouze data z výchozího nebo :$DATA datového proudu. Toky lze použít k ukládání skrytých dat, jako jsou atributy, nastavení zabezpečení nebo jiná data.

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 odkazovaný v příkladu LineNumbers.txt 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 obsahem Get

Můžete zadat filtr pro rutinu Get-Content . Při použití filtrů pro 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[]] jeden objekt.

$byteArray = Get-Content -Path C:\temp\test.txt -Encoding Byte -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 pomocí parametru Kódování získá datový proud bajtů ze souboru. Nezpracovaný parametr zajišťuje, aby bajty byly vráceny jako [System.Byte[]]. Pokud parametr Raw chybí, návratová hodnota je datový proud bajtů, který je interpretován PowerShellem jako [System.Object[]].

Parametry

-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 úroveň přihlašovacích údajů při spuštění této rutiny, použijte Invoke-Command.

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

-Delimiter

Určuje oddělovač, který Get-Content používá k rozdělení souboru na objekty při čtení. Výchozí hodnota je \nznak 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ý zprostředkovatel FileSystem přidává do rutiny Get-Content . Tento parametr funguje jenom na jednotkách systému souborů.

Poznámka:

Pokud je hodnota parametru Oddělovač prázdný řetězec, Get-Content nevrací nic. Jedná se o známý problém. Pokud chcete vynutit Get-Content vrácení celého souboru jako jednoho řetězce, nedemitovaný řetězec. Zadejte hodnotu, která v souboru neexistuje.

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

-Encoding

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

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

  • Ascii Používá znakovou sadu ASCII (7bitová).
  • BigEndianUnicode Používá UTF-16 s pořadím velkých bajtů.
  • BigEndianUTF32 Používá UTF-32 s pořadím velkých bajtů.
  • Byte Zakóduje sadu znaků do posloupnosti bajtů.
  • Default Používá kódování odpovídající aktivní znakové stránce systému (obvykle ANSI).
  • Oem Používá kódování odpovídající aktuální znakové stránce OEM systému.
  • String Stejné jako Unicode.
  • Unicode Používá UTF-16 s minimálním pořadím bajtů.
  • Unknown Stejné jako Unicode.
  • UTF7 Používá UTF-7.
  • UTF8 Používá UTF-8.
  • UTF32 Používá UTF-32 s minimálním pořadím bajtů.

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

Při čtení z binárních souborů a zápisu do binárních souborů použijte hodnotu Bajt pro dynamický parametr Kódování a hodnotu 0 pro parametr ReadCount . Hodnota ReadCount 0 přečte celý soubor v rámci jedné operace čtení a převede ho na jeden objekt (PSObject). Výchozí hodnota ReadCount 1 čte jeden bajt v každé operaci čtení a převede každý bajt na samostatný objekt, což způsobí chyby při použití Set-Content rutiny k zápisu bajtů do souboru.

Type:FileSystemCmdletProviderEncoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Position:Named
Default value:Default
Required:False
Accept pipeline input:False
Accept wildcard characters: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 element nebo vzor cesty, například *.txt. Jsou povoleny zástupné znaky.

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

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

-Filter

Určuje filtr, který má kvalifikovat parametr 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.

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

-Force

Vynucení může přepsat atribut jen 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í.

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

-Include

Určuje, jako pole řetězců, položku nebo položky, které tato rutina zahrnuje v operaci. Hodnota tohoto parametru kvalifikuje parametr Path . Zadejte element nebo vzor cesty, 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 C:\Windows adresáře.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 řídicí 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.

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 k oddělení vstupu do pole řetězců. Tento parametr byl představen v PowerShellu 3.0.

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 nárůstem hodnoty ReadCount se zvýší doba, kterou trvá vrácení prvního řádku, ale celková doba operace se sníží. To může mít znatelný rozdíl ve velkých položkách.

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

-Stream

Získá obsah zadaného alternativního datového proudu souboru NTFS ze souboru. Zadejte název datového proudu. Zástupné kóty 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.

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

-Tail

Určuje počet řádků od konce souboru nebo jiné položky. Můžete použít název koncového parametru nebo jeho alias Last. Záporné hodnoty způsobí, že rutina vrátí celý obsah.

Tento parametr byl představen v PowerShellu 3.0.

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

-TotalCount

Určuje počet řádků od začátku souboru nebo jiné položky. Záporné hodnoty způsobí, že rutina vrátí celý obsah.

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

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

-UseTransaction

Zahrnuje příkaz v aktivní transakci. Tento parametr je platný pouze v případě, že probíhá transakce. Další informace najdete v tématu about_Transactions.

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

-Wait

Způsobí, že rutina počká neomezeně dlouho, dokud se soubor neotevře, dokud se nepřeruší. Při čekání Get-Content zkontroluje soubor jednou za sekundu a v případě přítomnosti vypíše nové řádky. Při použití s parametrem TotalCount počká, Get-Content dokud v zadaném souboru nebude k dispozici zadaný počet řádků. Pokud například zadáte celkový počet 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 při doručení, ale před ukončením čeká 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ů. Čekání se nedá kombinovat s Raw.

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

Vstupy

Int64

Do této rutiny můžete převést počet čtení nebo celkový počet.

String[]

K této rutině můžete připojit cesty.

PSCredential

K této rutině můžete připojit přihlašovací údaje.

Výstupy

Byte

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

String

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

Poznámky

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

  • cat
  • gc
  • type

Rutina Get-Content je navržená tak, aby fungovala s daty vystavenými libovolným poskytovatelem. K získání zprostředkovatelů ve vaší relaci použijte rutinu Get-PSProvider . Další informace najdete v tématu about_Providers.