Tee-Object
Speichert die Ausgabe des Befehls in einer Datei oder einer Variablen, und sendet sie über die Pipeline.
Syntax
Tee-Object
[-InputObject <PSObject>]
[-FilePath] <String>
[-Append]
[<CommonParameters>]
Tee-Object
[-InputObject <PSObject>]
-LiteralPath <String>
[<CommonParameters>]
Tee-Object
[-InputObject <PSObject>]
-Variable <String>
[<CommonParameters>]
Beschreibung
Das Tee-Object
Cmdlet leitet die Ausgabe um. Das heißt, es sendet die Ausgabe eines Befehls in zwei Richtungen (z. B. den Buchstaben T). Das Cmdlet speichert die Ausgabe in einer Datei oder einer Variablen und sendet sie über die Pipeline. Wenn Tee-Object
der letzte Befehl in der Pipeline ist, wird die Befehlsausgabe an der Eingabeaufforderung angezeigt.
Beispiele
Beispiel 1: Ausgabeprozesse in eine Datei und an die Konsole
In diesem Beispiel wird eine Liste der prozesse abgerufen, die auf dem Computer ausgeführt werden, und das Ergebnis wird an eine Datei gesendet. Da kein zweiter Pfad angegeben ist, werden die Prozesse auch in der Konsole angezeigt.
Get-Process | Tee-Object -FilePath "C:\Test1\testfile2.txt"
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
83 4 2300 4520 39 0.30 4032 00THotkey
272 6 1400 3944 34 0.06 3088 alg
81 3 804 3284 21 2.45 148 ApntEx
81 4 2008 5808 38 0.75 3684 Apoint
...
Beispiel 2: Ausgabeprozesse an eine Variable und "Select-Object"
In diesem Beispiel wird eine Liste der auf dem Computer ausgeführten Prozesse abgerufen, in der $proc
Variablen gespeichert und an Select-Object
übergeben.
Get-Process notepad | Tee-Object -Variable proc | Select-Object processname,handles
ProcessName Handles
----------- -------
notepad 43
notepad 37
notepad 38
notepad 38
Das Select-Object
Cmdlet wählt die Eigenschaften ProcessName und Handles aus. Beachten Sie, dass die $proc
Variable die Standardinformationen enthält, die von zurückgegeben werden Get-Process
.
Beispiel 3: Ausgeben von Systemdateien in zwei Protokolldateien
In diesem Beispiel wird eine Liste der Systemdateien in zwei Protokolldateien gespeichert: einer kumulativen Datei und einer aktuellen Datei.
Get-ChildItem -Path D: -File -System -Recurse |
Tee-Object -FilePath "c:\test\AllSystemFiles.txt" -Append |
Out-File c:\test\NewSystemFiles.txt
Der Befehl verwendet das Get-ChildItem
Cmdlet, um eine rekursive Suche nach Systemdateien auf Laufwerk D: durchzuführen. Ein Pipelineoperator (|) sendet die Liste an Tee-Object
, der die Liste an die AllSystemFiles.txt-Datei anhängt und die Liste an das Out-File
Cmdlet übergibt, das die Liste in der NewSystemFiles.txt-Datei speichert.
Parameter
-Append
Gibt an, dass das Cmdlet die Ausgabe an die angegebene Datei anhängt. Ohne diesen Parameter ersetzt der neue Inhalt vorhandene Inhalte in der Datei ohne Warnung.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Gibt eine Datei an, die dieses Cmdlet in Platzhalterzeichen speichert, die jedoch in eine einzelne Datei aufgelöst werden müssen.
Type: | String |
Aliases: | Path |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
Gibt das zu speichernde und anzuzeigende Objekt an. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, durch den die Objekte abgerufen werden. Sie können auch ein -Objekt an übergeben Tee-Object
.
Wenn Sie den InputObject-Parameter mit Tee-Object
verwenden, anstatt Befehlsergebnisse an zu Tee-Object
leiten, wird der InputObject-Wert als einzelnes Objekt behandelt, auch wenn der Wert eine Auflistung ist.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Gibt eine Datei an, in der dieses Cmdlet das Objekt speichert. Im Gegensatz zu FilePath wird der Wert des LiteralPath-Parameters 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. Einfache Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.
Type: | String |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Variable
Gibt eine Variable an, in der das -Objekt vom Cmdlet gespeichert wird. Geben Sie einen Variablennamen ohne das vorangehende Dollarzeichen ($
) ein.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Sie können -Objekte an übergeben Tee-Object
.
Ausgaben
Tee-Object
gibt das -Objekt zurück, das umgeleitet wird.
Hinweise
Sie können auch das Out-File
Cmdlet oder den Umleitungsoperator verwenden, die beide die Ausgabe in einer Datei speichern, aber nicht über die Pipeline senden.
Ab PowerShell 6 Tee-Object
verwendet die UTF-8-Codierung ohne BOM, wenn in Dateien geschrieben wird. Wenn Sie eine andere Codierung benötigen, verwenden Sie das Out-File
Cmdlet mit dem Encoding-Parameter .