Get-Content

Lekéri az elem tartalmát a megadott helyen.

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

A Get-Content parancsmag az elem tartalmát az elérési út által megadott helyen kapja meg, például egy fájl szövegét vagy egy függvény tartalmát. Fájlok esetén a tartalom egyszerre egy sorban olvasható, és egy objektumgyűjteményt ad vissza, amelyek mindegyike egy-egy tartalomsort jelöl.

A PowerShell 3.0-s Get-Content verziójától kezdődően adott számú sort is lekérhet egy elem elejétől vagy végétől.

Példák

1. példa: Szövegfájl tartalmának lekérése

Ez a példa lekéri egy fájl tartalmát az aktuális könyvtárban. A LineNumbers.txt fájl 100 sorból áll, ez az X sor, és több példában is használatos.

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.

Az 1–100 tömbértékeket a rendszer elküldi a folyamatnak a ForEach-Object parancsmagnak. ForEach-Object parancsmaggal rendelkező szkriptblokkot Add-Content használ a LineNumbers.txt fájl létrehozásához. A változó $_ a tömbértékeket jelöli, mivel az egyes objektumok a folyamaton keresztül lesznek elküldve. A Get-Content parancsmag a Path paraméter használatával adja meg a LineNumbers.txt fájlt, és megjeleníti a tartalmat a PowerShell-konzolon.

2. példa: A Get-Content visszatérési sorok számának korlátozása

Ez a parancs lekéri a fájl első öt sorát. A TotalCount paraméter a tartalom első öt sorát kapja meg. Ez a példa az LineNumbers.txt 1. példában hivatkozottat használja.

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

3. példa: Adott tartalomsor lekérése szövegfájlból

Ez a parancs adott számú sort kap egy fájlból, majd csak a tartalom utolsó sorát jeleníti meg. A TotalCount paraméter az első 25 sornyi tartalmat kapja meg. Ez a példa az LineNumbers.txt 1. példában hivatkozott fájlt használja.

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

This is Line 25

A Get-Content parancs zárójelekbe van csomagolva, hogy a parancs befejeződjön, mielőtt továbblép a következő lépésre. Get-Contentegy sortömböt ad vissza, amely lehetővé teszi az index jelölésének hozzáadását a zárójel után egy adott sorszám lekéréséhez. Ebben az esetben az [-1] index az utolsó indexet adja meg a visszaadott 25 lekért sorból álló tömbben.

4. példa: Szövegfájl utolsó sorának lekérése

Ez a parancs lekéri az utolsó sor tartalmát egy fájlból. Ez a példa az LineNumbers.txt 1. példában létrehozott fájlt használja.

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

This is Line 100

Ez a példa a Get-Item parancsmaggal mutatja be, hogy a fájlokat be lehet-e csövezni Get-Content. A Tail paraméter a fájl utolsó sorát kapja meg. Ez a módszer gyorsabb, mint egy változó összes sorának beolvasása és az index jelölésének [-1] használata.

5. példa: Másik adatfolyam tartalmának lekérése

Ez a példa bemutatja, hogyan szerezheti be a Stream paramétert egy alternatív adatfolyam tartalmának lekéréséhez a Windows NTFS-köteten tárolt fájlokhoz. Ebben a példában a Set-Content parancsmag használatával hoz létre mintatartalmat egy nevesített Stream.txtfájlban.

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

A Stream paraméter a FileSystem-szolgáltató dinamikus paramétere. Alapértelmezés szerint Get-Content csak az alapértelmezett értékről kéri le az adatokat, vagy :$DATA streamel. adatfolyamok használható rejtett adatok, például attribútumok, biztonsági beállítások vagy egyéb adatok tárolására. A könyvtárakban gyermekelemek nélkül is tárolhatók.

6. példa: Nyers tartalom lekérése

A példában szereplő parancsok egy fájl tartalmát sztringek tömbje helyett egy sztringként kapják meg. Alapértelmezés szerint a Nyers dinamikus paraméter nélkül a rendszer új vonallal tagolt sztringek tömbjeként adja vissza a tartalmat. Ez a példa az LineNumbers.txt 1. példában hivatkozott fájlt használja.

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

7. példa: Szűrők használata lekéréses tartalommal

A parancsmaghoz Get-Content szűrőt is megadhat. Ha szűrőkkel minősíti az Elérési út paramétert, egy záró csillagot (*) kell tartalmaznia az elérési út tartalmának jelzéséhez.

A következő parancs lekéri a könyvtárban lévő C:\Temp összes *.log fájl tartalmát.

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

8. példa: Fájltartalom lekérése bájttömbként

Ez a példa bemutatja, hogyan szerezheti be egy fájl tartalmát egyetlen objektumként [byte[]] .

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

Az első parancs az AsByteStream paraméter használatával lekéri a bájtok adatfolyamát a fájlból. A Raw paraméter biztosítja, hogy a bájtok visszaadása [System.Byte[]]. Ha a Raw paraméter nem volt jelen, a visszatérési érték bájtok adatfolyama, amelyet a PowerShell [System.Object[]]a következőképpen értelmez.

Paraméterek

-AsByteStream

Megadja, hogy a tartalmat bájtok adatfolyamaként kell olvasni. Az AsByteStream paraméter a Windows PowerShell 6.0-ban lett bevezetve.

Figyelmeztetés jelenik meg, ha az AsByteStream paramétert a Kódolás paraméterrel használja. Az AsByteStream paraméter figyelmen kívül hagy minden kódolást, és a kimenet bájtfolyamként lesz visszaadva.

Bináris fájlokból való olvasáskor és íráskor használja az AsByteStream paramétert és a 0 értéket a ReadCount paraméterhez. A 0 ReadCount érték egyetlen olvasási műveletben olvassa be a teljes fájlt. Az alapértelmezett ReadCount érték (1) minden olvasási műveletben egy bájtot olvas be, és az egyes bájtokat külön objektummá alakítja. Az egybájtos kimenet pipálása hibákhoz Set-Content vezet, kivéve, ha az AsByteStream paramétert használja a következővel Set-Content: .

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

-Credential

Feljegyzés

Ezt a paramétert a PowerShell-lel telepített szolgáltatók nem támogatják. Ha megszemélyesíteni szeretne egy másik felhasználót, vagy a parancsmag futtatásakor emeli a hitelesítő adatait, használja az Invoke-Command parancsot.

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

-Delimiter

Megadja a fájl olvasás közben objektumokra való felosztásához használt elválasztójelet Get-Content . Az alapértelmezett érték \na sorvég karakter. Szövegfájl Get-Content olvasásakor sztringobjektum-gyűjteményt ad vissza, mindegyik sorvég karakterrel végződik. Ha olyan elválasztót ad meg, amely nem létezik a fájlban, Get-Content a teljes fájlt egyetlen, nem kézbesített objektumként adja vissza.

Ezzel a paraméterrel egy nagyobb fájlt feloszthat kisebb fájlokra egy fájlelválasztó megadásával, elválasztóként. A határoló megmarad (nem elvetve), és az egyes fájlszakaszok utolsó elemévé válik.

Az elválasztó egy dinamikus paraméter, amelyet a Fájlrendszer-szolgáltató hozzáad a Get-Content parancsmaghoz. Ez a paraméter csak fájlrendszer-meghajtókon működik.

Feljegyzés

Jelenleg, ha a Határoló paraméter értéke üres sztring, Get-Content nem ad vissza semmit. Ez egy ismert probléma. Get-Content A teljes fájl egyetlen, nem kézbesített sztringként való visszaadásához. Adjon meg egy olyan értéket, amely nem szerepel a fájlban.

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

-Encoding

Megadja a célfájl kódolási típusát. Az alapértelmezett érték utf8NoBOM.

A paraméter elfogadható értékei a következők:

  • ascii: Az ASCII (7 bites) karakterkészlet kódolását használja.
  • ansi: Az aktuális kultúra ANSI-kódlapjának kódolását használja. Ez a beállítás a PowerShell 7.4-ben lett hozzáadva.
  • bigendianunicode: UTF-16 formátumban kódolja a big-endian bájtsorrendet.
  • bigendianutf32: UTF-32 formátumban kódolja a big-endian bájtsorrendet.
  • oem: Az MS-DOS és a konzolprogramok alapértelmezett kódolását használja.
  • unicode: UTF-16 formátumban kódolja a kis végű bájtsorrendet.
  • utf7: UTF-7 formátumban kódol.
  • utf8: UTF-8 formátumban kódol.
  • utf8BOM: UTF-8 formátumban kódol byte order mark (BOM)
  • utf8NoBOM: UTF-8 formátumban kódol byte order mark (BOM) nélkül
  • utf32: UTF-32 formátumban kódol.

A kódolás egy dinamikus paraméter, amelyet a FileSystem-szolgáltató hozzáad a Get-Content parancsmaghoz. Ez a paraméter csak fájlrendszer-meghajtókon érhető el.

A PowerShell 6.2-től kezdődően a Kódolás paraméter lehetővé teszi a regisztrált kódlapok (például -Encoding 1251) numerikus azonosítóit vagy a regisztrált kódlapok sztringneveit (például -Encoding "windows-1251"). További információt a Encoding.CodePage .NET-dokumentációjában talál.

A PowerShell 7.4-től kezdve a AnsiKódolás paraméter értékével anélkül adhat meg numerikus azonosítót az aktuális kultúra ANSI-kódlapjához, hogy manuálisan kellene megadnia.

Feljegyzés

Az UTF-7* már nem ajánlott. A PowerShell 7.1-ről figyelmeztetést ír, ha utf7 megadja a Kódolás paramétert.

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

Sztringtömbként olyan elemet vagy elemeket határoz meg, amelyeket ez a parancsmag kizár a műveletből. Ennek a paraméternek az értéke az Elérési út paramétert minősíti.

Adjon meg egy elérési út elemet vagy mintát, például *.txt. A helyettesítő karakterek használata engedélyezett.

A Kizárás paraméter csak akkor érvényes, ha a parancs egy elem tartalmát tartalmazza, például C:\Windows\*ha a helyettesítő karakter a könyvtár tartalmát C:\Windows adja meg.

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

-Filter

Egy szűrőt ad meg, amely megfelel az Elérési út paraméternek. A Fájlrendszer-szolgáltató az egyetlen telepített PowerShell-szolgáltató, amely támogatja a szűrők használatát. A Fájlrendszer szűrőnyelvének szintaxisa about_Wildcards található. A szűrők hatékonyabbak, mint a többi paraméter, mivel a szolgáltató akkor alkalmazza őket, amikor a parancsmag lekéri az objektumokat, és nem azt, hogy a PowerShell szűrje az objektumokat a lekérés után.

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

-Force

Az kényszerítés felülírhat egy írásvédett attribútumot, vagy könyvtárakat hozhat létre egy fájl elérési útjának befejezéséhez. A Force paraméter nem próbálja módosítani a fájlengedélyeket vagy felülbírálni a biztonsági korlátozásokat.

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

-Include

Sztringtömbként egy elemet vagy elemet határoz meg, amelyet ez a parancsmag tartalmaz a műveletben. Ennek a paraméternek az értéke az Elérési út paramétert minősíti. Adjon meg egy elérési út elemet vagy mintát, például "*.txt". A helyettesítő karakterek használata engedélyezett. Az Include paraméter csak akkor érvényes, ha a parancs egy elem tartalmát tartalmazza, például C:\Windows\*amikor a helyettesítő karakter a könyvtár tartalmát C:\Windows adja meg.

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

-LiteralPath

Egy vagy több hely elérési útját adja meg. A LiteralPath értékét pontosan a beírt módon használja a rendszer. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési út tartalmaz escape karaktereket, csatolja egy idézőjelek közé. Az idézőjelek azt mondják a PowerShellnek, hogy ne értelmezzen karaktereket feloldósorozatként.

További információ: about_Quoting_Rules.

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

-Path

Megadja egy elem elérési útját, ahol Get-Content lekéri a tartalmat. A helyettesítő karakterek használata engedélyezett. Az elérési utaknak nem tárolókhoz, hanem elemekhez vezető elérési utaknak kell lenniük. Például meg kell adnia egy vagy több fájl elérési útját, nem pedig egy könyvtár elérési útját.

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

-Raw

Figyelmen kívül hagyja az újsoros karaktereket, és visszaadja egy fájl teljes tartalmát egy sztringben, és megőrzi az új sorokat. Alapértelmezés szerint a fájl új vonalas karakterei elválasztóként használhatók a bemenet sztringtömbbe való elválasztásához. Ezt a paramétert a PowerShell 3.0-ban vezettük be.

A Raw egy dinamikus paraméter, amelyet a Fájlrendszer-szolgáltató hozzáad a parancsmaghoz. Ez a Get-Content paraméter csak fájlrendszer-meghajtókon működik.

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

-ReadCount

Megadja, hogy egyszerre hány sornyi tartalom érkezik a folyamaton keresztül. Az alapértelmezett érték 1. A 0 (nulla) vagy negatív számérték egyszerre küldi el az összes tartalmat.

Ez a paraméter nem módosítja a megjelenített tartalmat, de hatással van a tartalom megjelenítéséhez szükséges időre. A ReadCount értékének növekedésével nő az első sor visszaadásához szükséges idő, de a művelet teljes ideje csökken. Ez érzékelhető különbséget tehet a nagy elemek között.

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

-Stream

Feljegyzés

Ez a paraméter csak Windows rendszeren érhető el.

Lekéri a megadott másodlagos NTFS-fájlstream tartalmát a fájlból. Adja meg a stream nevét. A helyettesítő karakterek nem támogatottak.

A Stream egy dinamikus paraméter, amelyet a Fájlrendszer-szolgáltató hozzáad a Get-Content parancsmaghoz. Ez a paraméter csak Windows rendszerű fájlrendszer-meghajtókon működik.

Ezt a paramétert a Windows PowerShell 3.0-ban vezettük be. A PowerShell 7.2-ben Get-Content lekérheti az alternatív adatfolyamok tartalmát könyvtárakból és fájlokból.

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

-Tail

A fájl vagy más elem végéből származó sorok számát adja meg. Használhatja a Tail paraméter nevét vagy aliasát, az Utolsó paramétert. A negatív értékek miatt a parancsmag a teljes tartalmat visszaadja.

Ezt a paramétert a PowerShell 3.0-ban vezettük be.

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

-TotalCount

A fájl vagy más elem elejéről származó sorok számát adja meg. A negatív értékek miatt a parancsmag a teljes tartalmat visszaadja.

Használhatja a TotalCount paraméter nevét vagy aliasait, az Első vagy a Head nevet.

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

-Wait

A parancsmag határozatlan ideig várakozik, a fájl nyitva marad, amíg megszakad. Várakozás közben másodpercenként egyszer ellenőrzi a fájlt, Get-Content és új sorokat ad ki, ha van ilyen. Ha a TotalCount paraméterrel használja, megvárja, Get-Content amíg a megadott számú sor elérhetővé válik a megadott fájlban. Ha például egy 10-es totalCount értéket ad meg, és a fájl már 10 vagy több sorból áll, Get-Content a 10 sort és a kilépést adja vissza. Ha a fájl 10-nél kevesebb sorból áll, Get-Content minden sort kimenetként ad ki, de a kilépés előtt megvárja, amíg a tizedik sor megérkezik.

A Várakozást a Ctrl C billentyűkombináció+lenyomásával szakíthatja meg. A fájl törlése nem végződő hibát okoz, amely szintén megszakítja a várakozást.

A Várakozás egy dinamikus paraméter, amelyet a FileSystem-szolgáltató hozzáad a Get-Content parancsmaghoz. Ez a paraméter csak fájlrendszer-meghajtókon működik. A várakozás nem kombinálható a Nyerstel.

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

Bevitelek

Int64

Erre a parancsmagra az olvasási szám vagy a teljes szám csövezhető.

String[]

Ehhez a parancsmaghoz csövezheti az elérési utakat.

PSCredential

Ehhez a parancsmaghoz adhatja a hitelesítő adatokat.

Kimenetek

Byte

Az AsByteStream paraméter használatakor ez a parancsmag bájtként adja vissza a tartalmat.

String

Ez a parancsmag alapértelmezés szerint sztringtömbként adja vissza a tartalmat, soronként egyet. Amikor a Raw paramétert használja, az egyetlen sztringet ad vissza, amely a fájl minden sorát tartalmazza.

Jegyzetek

A PowerShell a következő aliasokat Get-Contenttartalmazza:

  • Minden platform:
    • gc
    • type
  • Windows:
    • cat

A Get-Content parancsmag úgy lett kialakítva, hogy bármely szolgáltató által közzétett adatokkal működjön együtt. A szolgáltatók munkamenetben való lekéréséhez használja a Get-PSProvider parancsmagot. További információ: about_Providers.