Get-Content
Ruft den Inhalt des Elements am angegebenen Speicherort ab.
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>]
Beschreibung
Das Get-Content
Cmdlet ruft den Inhalt des Elements an dem Speicherort ab, der vom Pfad angegeben wird, z. B. den Text in einer Datei oder den Inhalt einer Funktion. Für Dateien wird der Inhalt jeweils eine Zeile gelesen und gibt eine Auflistung von Objekten zurück, die jeweils eine Inhaltszeile darstellen.
Ab PowerShell 3.0 Get-Content
kann auch eine angegebene Anzahl von Zeilen vom Anfang oder Ende eines Elements abgerufen werden.
Beispiele
Beispiel 1: Abrufen des Inhalts einer Textdatei
In diesem Beispiel wird der Inhalt einer Datei im aktuellen Verzeichnis angezeigt. Die LineNumbers.txt
Datei enthält 100 Zeilen im Format, Dies ist Line X und wird in mehreren Beispielen verwendet.
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.
Die Arraywerte 1-100 werden an das ForEach-Object
Cmdlet gesendet. ForEach-Object
verwendet einen Skriptblock mit dem Cmdlet, um die Add-Content
LineNumbers.txt
Datei zu erstellen. Die Variable $_
stellt die Arraywerte dar, da jedes Objekt die Pipeline herunter gesendet wird. Das Get-Content
Cmdlet verwendet den Pfadparameter , um die LineNumbers.txt
Datei anzugeben und den Inhalt in der PowerShell-Konsole anzuzeigen.
Beispiel 2: Einschränken der Anzahl der Zeilen Get-Content zurückgeben
Dieser Befehl ruft die ersten fünf Zeilen einer Datei ab. Der Parameter TotalCount wird verwendet, um die ersten fünf Inhaltszeilen abzurufen. In diesem Beispiel wird die Datei verwendet, die LineNumbers.txt
in Beispiel 1 erstellt wurde.
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
Beispiel 3: Abrufen einer bestimmten Inhaltszeile aus einer Textdatei
Dieser Befehl ruft eine bestimmte Anzahl von Zeilen aus einer Datei ab und zeigt dann nur die letzte Zeile dieser Inhalte an. Der Parameter TotalCount ruft die ersten 25 Inhaltszeilen ab. In diesem Beispiel wird die Datei verwendet, die LineNumbers.txt
in Beispiel 1 erstellt wurde.
(Get-Content -Path .\LineNumbers.txt -TotalCount 25)[-1]
This is Line 25
Der Get-Content
Befehl wird in Klammern umgebrochen, damit der Befehl abgeschlossen wird, bevor er zum nächsten Schritt geht. Get-Content
gibt ein Array von Zeilen zurück, mit dem Sie die Indexnotation nach der Klammer hinzufügen können, um eine bestimmte Zeilennummer abzurufen. In diesem Fall gibt der [-1]
Index den letzten Index im zurückgegebenen Array von 25 abgerufenen Zeilen an.
Beispiel 4: Abrufen der letzten Zeile einer Textdatei
Dieser Befehl ruft die letzte Inhaltszeile aus einer Datei ab. In diesem Beispiel wird die Datei verwendet, die LineNumbers.txt
in Beispiel 1 erstellt wurde.
Get-Item -Path .\LineNumbers.txt | Get-Content -Tail 1
This is Line 100
In diesem Beispiel wird das Get-Item
Cmdlet verwendet, um zu veranschaulichen, dass Sie Dateien in den Get-Content
Parameter weiterleiten können. Der Tail-Parameter ruft die letzte Zeile der Datei ab. Diese Methode ist schneller als das Abrufen aller Zeilen und der Verwendung der [-1]
Indexnotation.
Beispiel 5: Abrufen des Inhalts eines alternativen Datenstroms
In diesem Beispiel wird beschrieben, wie Sie den Stream-Parameter verwenden, um den Inhalt eines alternativen Datenstroms für Dateien abzurufen, die auf einem Windows NTFS-Volume gespeichert sind. In diesem Beispiel wird das Set-Content
Cmdlet verwendet, um Beispielinhalte in einer Datei namens Stream.txt
zu erstellen.
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.
Get-Content -Path .\Stream.txt -Stream $DATA
This is the content of the Stream.txt file
# 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
Der Stream-Parameter ist ein dynamischer Parameter des FileSystem-Anbieters.
Standardmäßig Get-Content
werden nur Daten aus der Standardeinstellung oder :$DATA
vom Stream abgerufen. Datenströme können verwendet werden, um ausgeblendete Daten wie Attribute, Sicherheitseinstellungen oder andere Daten zu speichern. Sie können auch in Verzeichnissen gespeichert werden, ohne untergeordnete Elemente zu sein.
Beispiel 6: Abrufen von rohen Inhalten
Die Befehle in diesem Beispiel erhalten den Inhalt einer Datei als eine Zeichenfolge anstelle eines Arrays von Zeichenfolgen. Standardmäßig wird der Inhalt ohne den unformatierten dynamischen Parameter als Array von getrennten Zeichenfolgen zurückgegeben. In diesem Beispiel wird die Datei verwendet, die LineNumbers.txt
in Beispiel 1 erstellt wurde.
$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.
Beispiel 7: Verwenden von Filtern mit Get-Content
Sie können einen Filter für das Get-Content
Cmdlet angeben. Wenn Sie Filter verwenden, um den Pfadparameter zu qualifizieren, müssen Sie ein nachgestelltes Sternchen (*
) einschließen, um den Inhalt des Pfads anzugeben.
Der folgende Befehl ruft den Inhalt aller *.log
Dateien im C:\Temp
Verzeichnis ab.
Get-Content -Path C:\Temp\* -Filter *.log
Beispiel 8: Abrufen von Dateiinhalten als Bytearray
In diesem Beispiel wird veranschaulicht, wie der Inhalt einer Datei als [byte[]]
einzelnes Objekt abgerufen wird.
$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)
Der erste Befehl verwendet den AsByteStream-Parameter , um den Datenstrom von Bytes aus der Datei abzurufen.
Der Raw-Parameter stellt sicher, dass die Bytes als eine [System.Byte[]]
zurückgegeben werden. Wenn der Raw-Parameter nicht vorhanden war, ist der Rückgabewert ein Datenstrom von Bytes, der von PowerShell als [System.Object[]]
interpretiert wird.
Parameter
-AsByteStream
Gibt an, dass der Inhalt als Datenstrom von Bytes gelesen werden soll. Der AsByteStream-Parameter wurde in Windows PowerShell 6.0 eingeführt.
Eine Warnung tritt auf, wenn Sie den AsByteStream-Parameter mit dem Codierungsparameter verwenden. Der AsByteStream-Parameter ignoriert jede Codierung, und die Ausgabe wird als Datenstrom von Bytes zurückgegeben.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Hinweis
Dieser Parameter wird von anbietern, die mit PowerShell installiert sind, nicht unterstützt. Um einen anderen Benutzer zu imitieren oder Ihre Anmeldeinformationen beim Ausführen dieses Cmdlets zu erhöhen, verwenden Sie "Invoke-Command".
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Delimiter
Gibt das Trennzeichen an, das Get-Content
die Datei während des Lesevorgangs in Objekte unterteilt. Der Standardwert ist \n
, das End-of-Line-Zeichen. Wenn Sie eine Textdatei lesen, Get-Content
gibt eine Auflistung von Zeichenfolgenobjekten zurück, die jeweils mit einem End-of-Line-Zeichen endet. Wenn Sie ein Trennzeichen eingeben, das nicht in der Datei vorhanden ist, Get-Content
gibt die gesamte Datei als einzelnes, nicht getrenntes Objekt zurück.
Sie können diesen Parameter verwenden, um eine große Datei in kleinere Dateien zu teilen, indem Sie ein Dateitrennzeichen angeben, als Trennzeichen. Das Trennzeichen wird beibehalten (nicht verworfen) und wird das letzte Element in jedem Dateiabschnitt.
Trennzeichen ist ein dynamischer Parameter, den Get-Content
der FileSystem-Anbieter dem Cmdlet hinzufügt. Dieser Parameter funktioniert nur in Dateisystemlaufwerken.
Hinweis
Derzeit gibt der Wert des Trennzeichenparameters eine leere Zeichenfolge zurück. Get-Content
Dies ist ein bekanntes Problem. Get-Content
Um die gesamte Datei als einzelne, unlimitierte Zeichenfolge zurückzugeben. Geben Sie einen Wert ein, der nicht in der Datei vorhanden ist.
Type: | String |
Position: | Named |
Default value: | End-of-line character |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Gibt den Typ der Codierung für die Zieldatei an. Standardwert: utf8NoBOM
.
Die zulässigen Werte für diesen Parameter sind wie folgt:
ascii
: Verwendet die Codierung für den ASCII-Zeichensatz (7-Bit- Zeichensatz).bigendianunicode
: Codiert im UTF-16-Format mithilfe der Groß-End-Bytereihenfolge.bigendianutf32
: Codiert im UTF-32-Format mithilfe der Groß-End-Bytereihenfolge.oem
: Verwendet die Standardcodierung für MS-DOS- und Konsolenprogramme.unicode
: Codiert im UTF-16-Format mithilfe der Klein-Endian-Bytereihenfolge.utf7
: Codiert im UTF-7-Format.utf8
: Codiert im UTF-8-Format.utf8BOM
: Codiert im UTF-8-Format mit Byte Order Mark (BOM)utf8NoBOM
: Codiert im UTF-8-Format ohne Byte Order Mark (BOM)utf32
: Codiert im UTF-32-Format.
Die Codierung ist ein dynamischer Parameter, den Get-Content
der FileSystem-Anbieter dem Cmdlet hinzufügt.
Dieser Parameter ist nur in Dateisystemlaufwerken verfügbar.
Verwenden Sie beim Lesen von und Schreiben in binäre Dateien den AsByteStream-Parameter und einen Wert von 0 für den ReadCount-Parameter . Ein ReadCount-Wert von 0 liest die gesamte Datei in einem einzelnen Lesevorgang. Der Standardwert "ReadCount ", 1, liest ein Byte in jedem Lesevorgang und konvertiert jedes Byte in ein separates Objekt, was Fehler verursacht, wenn Sie das Cmdlet verwenden, um die Bytes in eine Datei zu schreiben, es sei denn, Sie verwenden Set-Content
AsByteStream-Parameter .
Ab PowerShell 6.2 ermöglicht der Codierungsparameter auch numerische IDs von registrierten Codeseiten (z. B. ) oder Zeichenfolgennamen registrierter Codeseiten (wie -Encoding 1251
z -Encoding "windows-1251"
. B. ). Weitere Informationen finden Sie in der .NET-Dokumentation für Encoding.CodePage.
Hinweis
UTF-7* wird nicht mehr empfohlen, zu verwenden. Ab PowerShell 7.1 wird eine Warnung geschrieben, wenn Sie den Codierungsparameter angebenutf7
.
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
Gibt als Zeichenfolgenarray ein Element oder Elemente an, die dieses Cmdlet im Vorgang ausschließen. Der Wert dieses Parameters qualifiziert den Path-Parameter.
Geben Sie ein Pfadelement oder Muster ein, z. B *.txt
. .
Platzhalterzeichen sind zulässig.
Der Parameter "Ausschließen " ist nur wirksam, wenn der Befehl den Inhalt eines Elements enthält, z C:\Windows\*
. B. wo das Wildcardzeichen den Inhalt des C:\Windows
Verzeichnisses angibt.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Gibt einen Filter an, um den Pfadparameter zu qualifizieren. Der FileSystem-Anbieter ist der einzige installierte PowerShell-Anbieter, der die Verwendung von Filtern unterstützt. Sie können die Syntax für die Dateisystemfiltersprache in about_Wildcards finden. Filter sind effizienter als andere Parameter, da der Anbieter sie anwendet, wenn das Cmdlet die Objekte abruft, anstatt powerShell nach dem Abrufen der Objekte zu filtern.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Erzwingt ein schreibgeschütztes Attribut oder erstellt Verzeichnisse, um einen Dateipfad abzuschließen. Der Parameter Force versucht nicht, Dateiberechtigungen zu ändern oder Sicherheitseinschränkungen außer Kraft zu setzen.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Gibt als Zeichenfolgenarray ein Element oder Elemente an, die dieses Cmdlet im Vorgang enthält. Der Wert dieses Parameters qualifiziert den Path-Parameter. Geben Sie ein Pfadelement oder Muster ein, z. B "*.txt"
. . Platzhalterzeichen sind zulässig. Der Parameter "Einschließen " ist nur wirksam, wenn der Befehl den Inhalt eines Elements enthält, z C:\Windows\*
. B. wo das Wildcardzeichen den Inhalt des C:\Windows
Verzeichnisses angibt.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LiteralPath
Gibt einen Pfad zu einem oder mehreren Speicherorten an. Der Wert von LiteralPath wird genau wie eingegeben verwendet. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einzelne Anführungszeichen weisen PowerShell darauf hin, keine Zeichen als Escapesequenzen zu interpretieren.
Weitere Informationen finden Sie unter about_Quoting_Rules.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
Gibt den Pfad zu einem Element an, in Get-Content
dem der Inhalt abruft. Platzhalterzeichen sind zulässig. Die Pfade müssen auf Elemente und nicht auf Container zeigen. Sie müssen beispielsweise einen Pfad zu Dateien angeben, ein Pfad zu einem Verzeichnis ist nicht zulässig.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Raw
Ignoriert neue Linienzeichen und gibt den gesamten Inhalt einer Datei in einer Zeichenfolge mit erhaltenen neuen Linien zurück. Standardmäßig werden neue Zeilenzeichen in einer Datei als Trennzeichen verwendet, um die Eingabe in ein Array von Zeichenfolgen zu trennen. Dieser Parameter wurde in PowerShell 3.0 eingeführt.
Raw ist ein dynamischer Parameter, den der FileSystem-Anbieter dem Get-Content
Cmdlet hinzufügt Dieser Parameter funktioniert nur in Dateisystemlaufwerken.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ReadCount
Gibt an, wie viele Zeilen mit Inhalt gleichzeitig über die Pipeline übergeben werden. Der Standardwert ist 1. Mit dem Wert %%amp;quot;0%%amp;quot; (null) wird der gesamte Inhalt auf einmal übergeben.
Dieser Parameter ändert den angezeigten Inhalt nicht, sondern wirkt sich auf die Zeit aus, die zum Anzeigen des Inhalts benötigt wird. Je größer der Wert von ReadCount wird, desto länger dauert es, bis die erste Zeile zurückgegeben wird. Die erforderliche Gesamtzeit für den Vorgang hingegen verringert sich. Dies kann einen spürbaren Unterschied in großen Elementen machen.
Type: | Int64 |
Position: | Named |
Default value: | 1 |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Stream
Hinweis
Dieser Parameter ist nur unter Windows verfügbar.
Ruft die Inhalte des angegebenen alternativen NTFS-Dateidatenstroms aus der Datei ab. Geben Sie den Namen des Stroms ein. Platzhalter werden nicht unterstützt.
Stream ist ein dynamischer Parameter, den der FileSystem-Anbieter dem Get-Content
Cmdlet hinzufügt.
Dieser Parameter funktioniert nur in Dateisystemlaufwerken auf Windows-Systemen. Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Tail
Gibt die Anzahl der Zeilen aus dem Ende einer Datei oder eines anderen Elements an. Sie können den Namen des Tail-Parameters oder dessen Alias " Last" verwenden. Dieser Parameter wurde in PowerShell 3.0 eingeführt.
Type: | Int32 |
Aliases: | Last |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-TotalCount
Gibt die Anzahl der Zeilen vom Anfang einer Datei oder eines anderen Elements an. Der Standardwert ist %%amp;quot;-1%%amp;quot; (alle Zeilen).
Sie können den Parameternamen "TotalCount " oder " First " oder "Head" verwenden.
Type: | Int64 |
Aliases: | First, Head |
Position: | Named |
Default value: | -1 |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Wait
Hält die Datei geöffnet, nachdem alle vorhandenen Zeilen ausgegeben wurden. Beim Warten überprüft die Datei einmal nacheinander und gibt neue Zeilen aus, Get-Content
wenn vorhanden. Sie können warten, indem Sie STRG+C drücken. Das Warten endet auch, wenn die Datei gelöscht wird, in diesem Fall wird ein nicht beendeter Fehler gemeldet.
Warten ist ein dynamischer Parameter, den Get-Content
der FileSystem-Anbieter dem Cmdlet hinzufügt. Dieser Parameter funktioniert nur in Dateisystemlaufwerken. Warten kann nicht mit Raw kombiniert werden.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
System.Int64, System.String[], System.Management.Automation.PSCredential
Sie können die Leseanzahl, die Gesamtanzahl, die Pfade oder Anmeldeinformationenann.Get-Content
Ausgaben
System.Byte, System.String
Get-Content
gibt Zeichenfolgen oder Bytes zurück. Der Ausgabetyp hängt vom Inhaltstyp ab, den Sie als Eingabe angeben.
Hinweise
Das Get-Content
Cmdlet ist so konzipiert, dass die Von jedem Anbieter verfügbar gemachten Daten verwendet werden. Um die Anbieter in Ihrer Sitzung abzurufen, verwenden Sie das Get-PSProvider
Cmdlet. Weitere Informationen finden Sie unter about_Providers.