Get-Content
Pobiera zawartość elementu w określonej lokalizacji.
Składnia
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>]
Opis
Polecenie Get-Content
cmdlet pobiera zawartość elementu w lokalizacji określonej przez ścieżkę, taką jak tekst w pliku lub zawartość funkcji. W przypadku plików zawartość jest odczytywana po jednym wierszu jednocześnie i zwraca kolekcję obiektów, z których każda reprezentuje wiersz zawartości.
Począwszy od programu PowerShell 3.0, Get-Content
można również pobrać określoną liczbę wierszy od początku lub końca elementu.
Przykłady
Przykład 1. Pobieranie zawartości pliku tekstowego
Ten przykład pobiera zawartość pliku w bieżącym katalogu. Plik LineNumbers.txt
zawiera 100 wierszy w formacie , To jest wiersz X i jest używany w kilku przykładach.
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.
Wartości tablicy 1–100 są wysyłane w dół potoku ForEach-Object
do polecenia cmdlet. ForEach-Object
używa bloku skryptu z poleceniem Add-Content
cmdlet , aby utworzyć LineNumbers.txt
plik. Zmienna $_
reprezentuje wartości tablicy, ponieważ każdy obiekt jest wysyłany w dół potoku. Polecenie Get-Content
cmdlet używa parametru Path do określenia LineNumbers.txt
pliku i wyświetlania zawartości w konsoli programu PowerShell.
Przykład 2. Ograniczanie liczby wierszy Get-Content zwracanych
To polecenie pobiera pierwsze pięć wierszy pliku. Parametr TotalCount służy do pobierania pierwszych pięciu wierszy zawartości. W tym przykładzie użyto pliku utworzonego LineNumbers.txt
w przykładzie 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
Przykład 3. Pobieranie określonego wiersza zawartości z pliku tekstowego
To polecenie pobiera określoną liczbę wierszy z pliku, a następnie wyświetla tylko ostatni wiersz tej zawartości. Parametr TotalCount pobiera pierwsze 25 wierszy zawartości. W tym przykładzie użyto pliku utworzonego LineNumbers.txt
w przykładzie 1.
(Get-Content -Path .\LineNumbers.txt -TotalCount 25)[-1]
This is Line 25
Polecenie Get-Content
jest opakowane w nawiasy, aby polecenie zostało zakończone przed przejściem do następnego kroku. Get-Content
Metoda zwraca tablicę wierszy, co umożliwia dodanie notacji indeksu po nawiasie w celu pobrania określonego numeru wiersza. W tym przypadku [-1]
indeks określa ostatni indeks w zwracanej tablicy 25 pobranych wierszy.
Przykład 4. Pobieranie ostatniego wiersza pliku tekstowego
To polecenie pobiera ostatni wiersz zawartości z pliku. W tym przykładzie użyto pliku utworzonego LineNumbers.txt
w przykładzie 1.
Get-Item -Path .\LineNumbers.txt | Get-Content -Tail 1
This is Line 100
W tym przykładzie użyto Get-Item
polecenia cmdlet , aby zademonstrować, że można przekazać pliki potokowe do parametru Get-Content
. Parametr Tail pobiera ostatni wiersz pliku. Ta metoda jest szybsza niż pobieranie wszystkich wierszy i używanie notacji indeksu [-1]
.
Przykład 5. Pobieranie zawartości alternatywnego strumienia danych
W tym przykładzie opisano, jak za pomocą parametru stream uzyskać zawartość alternatywnego strumienia danych dla plików przechowywanych na woluminie NTFS systemu Windows. W tym przykładzie Set-Content
polecenie cmdlet służy do tworzenia przykładowej zawartości w pliku o nazwie 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, or $DATA stream. # Retrieve the content of the primary stream. Note the singlequotes to prevent variable substitution.
Get-Content -Path .\Stream.txt -Stream $DATA 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
# 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
# Use the Stream parameter of Add-Content to create a new Stream containing sample content.
Add-Content -Path .\Stream.txt -Stream NewStream -Value 'Added a stream named NewStream to Stream.txt'
# 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 strumienia jest parametrem dynamicznym dostawcy systemu plików.
Domyślnie Get-Content
pobiera tylko dane z domyślnego lub :$DATA
strumienia. Strumienie mogą służyć do przechowywania ukrytych danych, takich jak atrybuty, ustawienia zabezpieczeń lub inne dane. Można je również przechowywać w katalogach bez bycia elementami podrzędnym.
Przykład 6. Pobieranie nieprzetworzonej zawartości
Polecenia w tym przykładzie pobierają zawartość pliku jako jeden ciąg zamiast tablicy ciągów. Domyślnie bez nieprzetworzonego parametru dynamicznego zawartość jest zwracana jako tablica ciągów rozdzielanych wierszami. W tym przykładzie użyto pliku utworzonego LineNumbers.txt
w przykładzie 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.
Przykład 7. Używanie filtrów z Get-Content
Możesz określić filtr polecenia Get-Content
cmdlet. W przypadku używania filtrów w celu zakwalifikowania parametru Ścieżka należy uwzględnić końcową gwiazdkę (*
), aby wskazać zawartość ścieżki.
Następujące polecenie pobiera zawartość wszystkich *.log
plików w C:\Temp
katalogu.
Get-Content -Path C:\Temp\* -Filter *.log
Przykład 8. Pobieranie zawartości pliku jako tablicy bajtów
W tym przykładzie pokazano, jak pobrać zawartość pliku jako [byte[]]
pojedynczy obiekt.
$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)
Pierwsze polecenie używa parametru AsByteStream do pobrania strumienia bajtów z pliku.
Parametr Raw gwarantuje, że bajty są zwracane jako [System.Byte[]]
. Jeśli parametr Raw był nieobecny, wartość zwracana jest strumieniem bajtów, który jest interpretowany przez program PowerShell jako [System.Object[]]
.
Parametry
-AsByteStream
Określa, że zawartość powinna być odczytywana jako strumień bajtów. Parametr AsByteStream został wprowadzony w Windows PowerShell 6.0.
Ostrzeżenie występuje, gdy używasz parametru AsByteStream z parametrem Kodowanie . Parametr AsByteStream ignoruje wszelkie kodowanie, a dane wyjściowe są zwracane jako strumień bajtów.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Uwaga
Ten parametr nie jest obsługiwany przez żadnych dostawców zainstalowanych za pomocą programu PowerShell. Aby personifikować innego użytkownika lub podnieść poziom poświadczeń podczas uruchamiania tego polecenia cmdlet, użyj polecenia Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Delimiter
Określa ogranicznik używany Get-Content
do dzielenia pliku na obiekty podczas jego odczytu. Wartość domyślna to \n
, znak końca wiersza. Podczas odczytywania pliku Get-Content
tekstowego zwraca kolekcję obiektów ciągów, z których każdy kończy się znakiem końca wiersza. Po wprowadzeniu ogranicznika, który nie istnieje w pliku, Get-Content
zwraca cały plik jako pojedynczy, nieelimitowany obiekt.
Za pomocą tego parametru można podzielić duży plik na mniejsze pliki, określając separator plików jako ogranicznik. Ogranicznik jest zachowywany (nie jest odrzucany) i staje się ostatnim elementem w każdej sekcji pliku.
Ogranicznik jest parametrem dynamicznym, który dostawca systemu plików dodaje do Get-Content
polecenia cmdlet . Ten parametr działa tylko na dyskach systemu plików.
Uwaga
Obecnie, gdy wartość parametru ogranicznika jest pustym ciągiem, Get-Content
nie zwraca niczego. Jest to znany problem. Aby wymusić Get-Content
zwrócenie całego pliku jako pojedynczego, cofniętego ciągu. Wprowadź wartość, która nie istnieje w pliku.
Type: | String |
Position: | Named |
Default value: | End-of-line character |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Określa typ kodowania dla pliku docelowego. Wartość domyślna to utf8NoBOM
.
Dopuszczalne wartości tego parametru są następujące:
ascii
: używa kodowania dla zestawu znaków ASCII (7-bitowy).bigendianunicode
: koduje w formacie UTF-16 przy użyciu kolejności bajtów big-endian.bigendianutf32
: Koduje w formacie UTF-32 przy użyciu kolejności bajtów big-endian.oem
: używa domyślnego kodowania dla programów MS-DOS i konsolowych.unicode
: Koduje w formacie UTF-16 przy użyciu kolejności bajtów little-endian.utf7
: koduje w formacie UTF-7.utf8
: koduje w formacie UTF-8.utf8BOM
: Koduje w formacie UTF-8 za pomocą znacznika kolejności bajtów (BOM)utf8NoBOM
: Koduje w formacie UTF-8 bez znaku zamówienia bajtów (BOM)utf32
: Koduje w formacie UTF-32.
Kodowanie jest parametrem dynamicznym, który dostawca systemu plików dodaje do Get-Content
polecenia cmdlet.
Ten parametr jest dostępny tylko na dyskach systemu plików.
Podczas odczytywania i zapisywania do plików binarnych użyj parametru AsByteStream i wartości 0 dla parametru ReadCount . Wartość ReadCount 0 odczytuje cały plik w jednej operacji odczytu. Domyślna wartość ReadCount , 1, odczytuje jeden bajt w każdej operacji odczytu i konwertuje każdy bajt na oddzielny obiekt, co powoduje błędy podczas zapisywania Set-Content
bajtów do pliku, chyba że używasz parametru AsByteStream .
Począwszy od programu PowerShell 6.2, parametr kodowania umożliwia również identyfikatory liczbowe zarejestrowanych stron kodu (takich jak ) lub nazwy ciągów zarejestrowanych stron kodu (na przykład -Encoding 1251
-Encoding "windows-1251"
). Aby uzyskać więcej informacji, zobacz dokumentację platformy .NET dotyczącą pliku Encoding.CodePage.
Uwaga
UtF-7* nie jest już zalecane do użycia. Od programu PowerShell 7.1 jest napisane ostrzeżenie, jeśli zostanie określone utf7
dla parametru Kodowanie .
Type: | Encoding |
Accepted values: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Określa jako tablicę ciągów element lub elementy, które to polecenie cmdlet wyklucza w operacji. Wartość tego parametru kwalifikuje parametr Path .
Wprowadź element ścieżki lub wzorzec, taki jak *.txt
.
Dozwolone są symbole wieloznaczne.
Parametr Exclude jest skuteczny tylko wtedy, gdy polecenie zawiera zawartość elementu, na przykład C:\Windows\*
, gdzie symbol wieloznaczny określa zawartość C:\Windows
katalogu.
Type: | String[] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Określa filtr w celu zakwalifikowania parametru Ścieżka . Dostawca systemu plików jest jedynym zainstalowanym dostawcą programu PowerShell, który obsługuje korzystanie z filtrów. Składnię języka filtru Systemu plików można znaleźć w about_Wildcards. Filtry są bardziej wydajne niż inne parametry, ponieważ dostawca stosuje je, gdy polecenie cmdlet pobiera obiekty, zamiast filtrować obiekty programu PowerShell po ich pobraniu.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Wymuś zastąpienie atrybutu tylko do odczytu lub utworzenia katalogów w celu ukończenia ścieżki pliku. Parametr Force nie próbuje zmienić uprawnień pliku ani zastąpić ograniczeń zabezpieczeń.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Określa jako tablicę ciągów element lub elementy, które to polecenie cmdlet zawiera w operacji. Wartość tego parametru kwalifikuje parametr Path . Wprowadź element ścieżki lub wzorzec, taki jak "*.txt"
. Dozwolone są symbole wieloznaczne. Parametr Include jest skuteczny tylko wtedy, gdy polecenie zawiera zawartość elementu, na przykład C:\Windows\*
, gdzie symbol wieloznaczny określa zawartość C:\Windows
katalogu.
Type: | String[] |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LiteralPath
Określa ścieżkę do co najmniej jednej lokalizacji. Wartość LiterałuPath jest używana dokładnie tak, jak jest typowana. Znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy je ująć w pojedynczy cudzysłów. Znaki pojedynczego cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.
Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
Określa ścieżkę do elementu, w którym Get-Content
pobiera zawartość. Dozwolone są symbole wieloznaczne. Ścieżki muszą być ścieżkami do elementów, a nie kontenerami. Na przykład należy określić ścieżkę do jednego lub kilku plików, a nie ścieżkę do katalogu.
Type: | String[] |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Raw
Ignoruje znaki nowego wiersza i zwraca całą zawartość pliku w jednym ciągu z zachowanymi nowymi liniami. Domyślnie znaki nowego wiersza w pliku są używane jako ograniczniki, aby oddzielić dane wejściowe do tablicy ciągów. Ten parametr został wprowadzony w programie PowerShell 3.0.
Raw to parametr dynamiczny, który dostawca systemu plików dodaje do Get-Content
polecenia cmdlet Ten parametr działa tylko na dyskach systemu plików.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ReadCount
Określa, ile wierszy zawartości jest wysyłanych za pośrednictwem potoku w danym momencie. Wartość domyślna to 1. Wartość 0 (zero) wysyła całą zawartość jednocześnie.
Ten parametr nie zmienia wyświetlanej zawartości, ale wpływa na czas potrzebny na wyświetlenie zawartości. Wraz ze wzrostem wartości ReadCount czas potrzebny na zwrócenie pierwszego wiersza wzrasta, ale łączny czas operacji spada. Może to mieć zauważalną różnicę w dużych elementach.
Type: | Int64 |
Position: | Named |
Default value: | 1 |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Stream
Uwaga
Ten parametr jest dostępny tylko w systemie Windows.
Pobiera zawartość określonego alternatywnego strumienia plików NTFS z pliku. Wprowadź nazwę strumienia. Symbole wieloznaczne nie są obsługiwane.
Strumień jest parametrem dynamicznym, który dostawca systemu plików dodaje do Get-Content
polecenia cmdlet.
Ten parametr działa tylko na dyskach systemu plików w systemach Windows.
Ten parametr został wprowadzony w Windows PowerShell 3.0. W programie PowerShell 7.2 Get-Content może pobrać zawartość alternatywnych strumieni danych z katalogów, a także plików.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Tail
Określa liczbę wierszy z końca pliku lub innego elementu. Możesz użyć nazwy parametru Tail lub jego aliasu Last. Ten parametr został wprowadzony w programie PowerShell 3.0.
Type: | Int32 |
Aliases: | Last |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-TotalCount
Określa liczbę wierszy od początku pliku lub innego elementu. Wartość domyślna to -1 (wszystkie wiersze).
Możesz użyć nazwy parametru TotalCount lub jego aliasów, First lub Head.
Type: | Int64 |
Aliases: | First, Head |
Position: | Named |
Default value: | -1 |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Wait
Przechowuje plik otwarty po tym, jak wszystkie istniejące wiersze zostały wyjściowe. Podczas oczekiwania Get-Content
sprawdza plik po każdej sekundzie i wyświetla nowe wiersze, jeśli są obecne. Możesz przerwać oczekiwanie , naciskając klawisze CTRL+C. Oczekiwanie kończy się również w przypadku usunięcia pliku, w którym przypadku zgłaszany jest błąd braku zakończenia.
Wait jest parametrem dynamicznym, który dostawca systemu plików dodaje do Get-Content
polecenia cmdlet. Ten parametr działa tylko na dyskach systemu plików. Nie można połączyć oczekiwania z nieprzetworzonym.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
Możesz przekazać potok liczby odczytów lub łącznej liczby do tego polecenia cmdlet.
String[]
Możesz przekazać ścieżki potokowe do tego polecenia cmdlet.
Możesz przekazać poświadczenia do tego polecenia cmdlet.
Dane wyjściowe
Jeśli używasz parametru AsByteStream , to polecenie cmdlet zwraca zawartość jako bajty.
Domyślnie to polecenie cmdlet zwraca zawartość jako tablicę ciągów, po jednym na wiersz. Gdy używasz parametru Raw , zwraca on jeden ciąg zawierający każdy wiersz w pliku.
Uwagi
Program PowerShell zawiera następujące aliasy dla Get-Content
programu :
- Wszystkie platformy:
gc
type
- W systemie Windows:
cat
Polecenie Get-Content
cmdlet jest przeznaczone do pracy z danymi udostępnianymi przez dowolnego dostawcę. Aby uzyskać dostawców w sesji, użyj Get-PSProvider
polecenia cmdlet . Aby uzyskać więcej informacji, zobacz about_Providers.
Linki powiązane
Opinia
Prześlij i wyświetl opinię dla