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-Content
egy 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.txt
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 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. A streamek rejtett adatok, például attribútumok, biztonsági beállítások vagy egyéb adatok tárolására használhatók. 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
: .
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
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 a fájl olvasás közben objektumokra való felosztásához használt elválasztójelet Get-Content
. Az alapértelmezett érték \n
a 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.
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 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ülutf32
: 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
Kó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.
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 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.
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, 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.
Típus: | String |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
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 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.
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, 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.
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
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.
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á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.
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
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.
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 aliasát, az Utolsó paramétert. A visszaadott 0
érték 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 visszaadott 0
érték nem ad vissza sorokat. A negatív értékek hibát okoznak.
Használhatja a TotalCount paraméter nevét vagy aliasait, az Első vagy a Head nevet.
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 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.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
Bevitelek
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.
Ehhez a parancsmaghoz adhatja a hitelesítő adatokat.
Kimenetek
Az AsByteStream paraméter használatakor ez a parancsmag bájtként adja vissza a tartalmat.
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-Content
tartalmazza:
- 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.