Megosztás a következőn keresztül:


Get-Content

Lekérdezi 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 elérési út által megadott helyen kapja meg az elem tartalmát, 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-tól kezdődően a Get-Content egy 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 formátuma 100 sor, 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-től 100-ig terjedő tömbértékeket a rendszer továbbítja a csővezetéken a ForEach-Object parancsmagnak. ForEach-Object egy szkriptblokkot használ a Add-Content parancsmaggal a LineNumbers.txt fájl létrehozásához. A $_ változó a tömbértékeket jelöli, amikor az egyes objektumok le lesznek küldve a folyamaton. A Get-Content parancsmag a Elérési út paraméter használatával adja meg a LineNumbers.txt fájlt, és megjeleníti a tartalmat a PowerShell-konzolon.

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

Ez a parancs lekéri a fájl első öt sorát. A TotalCount paraméter az első öt sornyi tartalmat kapja meg. Az 1. példában hivatkozott LineNumbers.txt-t használja ez a példa.

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 1. példában hivatkozott LineNumbers.txt 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, így hozzáadhatja az index jelölését a zárójel után egy adott sorszám lekéréséhez. Ebben az esetben a [-1] index 25 lekért sorból álló visszaadott tömb utolsó indexét adja meg.

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 1. példában létrehozott LineNumbers.txt 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 Get-Contenttovábbíthatók. 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 a [-1] index jelölésének használata.

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

Ez a példa azt ismerteti, hogyan használhatja a Stream paramétert a Windows NTFS-köteten tárolt fájlok alternatív adatfolyamának tartalmának lekéréséhez. Ebben a példában a Set-Content parancsmag használatával hoz létre mintatartalmat egy Stream.txtnevű fá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 Fájlrendszer-szolgáltatódinamikus paramétere. Alapértelmezés szerint Get-Content csak az alapértelmezett vagy :$DATA streamből kér le adatokat. streamek használhatók 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 1. példában hivatkozott LineNumbers.txt 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 Get-Content

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

Az alábbi parancs lekéri a *.log könyvtárban lévő összes C:\Temp 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, például a [byte[]] adatként vagy egyetlen objektum formájában.

$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 a AsByteStream paramétert használja a bájtok adatfolyamának lekéréséhez a fájlból. A Nyers paraméter biztosítja, hogy a bájtok [System.Byte[]]ként legyenek visszaadva. Ha a Nyers paraméter nem volt jelen, a visszatérési érték bájtos adatfolyam, amelyet a PowerShell [System.Object[]]ként értelmez.

Paraméterek

-AsByteStream

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

Figyelmeztetés akkor fordul elő, ha a AsByteStream paramétert használja a Kódolás paraméterrel. Az AsByteStream paraméter figyelmen kívül hagyja a kódolást, és a kimenet bájtok adatfolyamaként lesz visszaadva.

Bináris fájlokból való olvasáskor és íráskor használja az AsByteStream paramétert, a ReadCount paraméter értéke pedig 0. A ReadCount értéke 0, amely egyetlen olvasási műveletben olvassa be a teljes fájlt. Az alapértelmezett ReadCount értéke (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 Set-Content való átirányítása hibákat okoz, hacsak nem használja az AsByteStream paramétert Set-Content.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Credential

Jegyzet

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 a Invoke-Command.

Típus:PSCredential
Position:Named
Alapértelmezett érték:Current user
Kötelező:False
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-Delimiter

Megadja azt a elválasztójelet, amelyet Get-Content használ a fájl olvasás közbeni objektumokra való felosztásához. Az alapértelmezett érték \n, a sorvég karakter. Szövegfájl olvasásakor Get-Content 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, a Get-Content a teljes fájlt egyetlen, elválasztó nélküli 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.

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.

Jegyzet

Jelenleg, ha a elválasztó paraméter értéke egy üres sztring, Get-Content nem ad vissza semmit. Ez egy ismert probléma. A Get-Content arra kényszerítése, hogy a teljes fájlt egyetlen, elválasztók nélküli karaktersorként adja vissza. Adjon meg egy olyan értéket, amely nem szerepel a fájlban.

Típus:String
Position:Named
Alapértelmezett érték:End-of-line character
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

-Encoding

Megadja a célfájl kódolási típusát. Az alapértelmezett érték a 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: Nagy-végleges bájtsorrend alkalmazásával kódolja UTF-16 formátumban.
  • bigendianutf32: UTF-32 formátumban kódolja a big-endian bájtsorrendet.
  • oem: Az alapértelmezett kódolást használja MS-DOS és konzolprogramokhoz.
  • 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: Kódol UTF-8 formátumban a bájt sorrend jelölővel (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 Ansi 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.

Jegyzet

UTF-7* már nem ajánlott. A PowerShell 7.1-től kezdődően figyelmeztetés jelenik meg, ha utf7 van megadva a Kódolás paraméterhez.

Típus:Encoding
Elfogadott értékek:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Alapértelmezett érték:UTF8NoBOM
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása: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 a 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\*, ahol a helyettesítő karakter a C:\Windows könyvtár tartalmát adja meg.

Típus:String[]
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:True

-Filter

Egy szűrőt ad meg a Elérési út paraméter minősítéséhez. A Fájlrendszer szolgáltató az egyetlen telepített PowerShell-szolgáltató, amely támogatja a szűrők használatát. A FileSystem szűrőnyelvének szintaxisa megtekinthető a about_Wildcardstémakörben. 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.

Típus:String
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:True

-Force

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

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:False
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása: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 a 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\*, ahol a helyettesítő karakter a C:\Windows könyvtár tartalmát adja meg.

Típus:String[]
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása: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, foglalja egyszeres idézőjelek közé. Az egyszeres idézőjelek azt mondják a PowerShellnek, hogy ne értelmezzen bármilyen karaktert escape szekvenciaként.

További információért lásd: about_Quoting_Rules.

Típus:String[]
Aliasok:PSPath, LP
Position:Named
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-Path

Meghatározza az elem elérési útját, ahol Get-Content hozzáférést kap a tartalomhoz. 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.

Típus:String[]
Position:0
Alapértelmezett érték:None
Kötelező:True
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása: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ájlban található újsor-karakterek elválasztóként használatosak, hogy a bemenetet egy szövegtömbbe szeparálják. Ezt a paramétert a PowerShell 3.0-ban vezettük be.

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

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása: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.

Típus:Int64
Position:Named
Alapértelmezett érték:1
Kötelező:False
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-Stream

Jegyzet

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.

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.

Típus:String
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása: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 annak álnevét, Utolsó. A 0 értéke nem ad vissza sorokat. A negatív értékek hibát okoznak.

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

Típus:Int32
Aliasok:Last
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-TotalCount

A fájl vagy más elem elejéről származó sorok számát adja meg. A 0 értéke nem ad vissza sorokat. A negatív értékek hibát okoznak.

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

Típus:Int64
Aliasok:First, Head
Position:Named
Alapértelmezett érték:None
Kötelező:False
Folyamatbemenet elfogadása:True
Helyettesítő karakterek elfogadása:False

-Wait

A parancsmag határozatlan ideig várakozik, a fájl nyitva marad, amíg megszakad. Várakozás közben Get-Content másodpercenként egyszer ellenőrzi a fájlt, és ha van ilyen, új sorokat ad ki. Ha a TotalCount paraméterrel használja, Get-Content megvárja, amíg a megadott számú sor elérhető lesz a megadott fájlban. Ha például megad egy 10-es TotalCount értéket, és a fájl már 10 vagy több sorból áll, akkor a Get-Content visszaadja a 10 sort és kilép. Ha a fájl 10 sornál kevesebb, 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ási a Ctrl +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.

Wait 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. Várakozás nem kombinálható Nyers.

Típus:SwitchParameter
Position:Named
Alapértelmezett érték:False
Kötelező:False
Folyamatbemenet elfogadása:False
Helyettesítő karakterek elfogadása:False

Bevitelek

Int64

Az olvasási vagy a teljes szám továbbítható ehhez a parancsmaghoz.

String[]

Ehhez a parancsmaghoz átirányíthatja az elérési utakat.

PSCredential

Ehhez a parancsmaghoz átirányíthatja 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. Ha a Nyers paramétert használja, az egy szöveget ad vissza, amely tartalmazza a fájl összes sorát.

Jegyzetek

A PowerShell a következő aliasokat tartalmazza Get-Content:

  • 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 munkamenet szolgáltatóinak lekéréséhez használja a Get-PSProvider parancsmagot. További információ: about_Providers.