Tee-Object
Speichert die Befehlsausgabe in einer Datei oder Variable und sendet sie auch an die Pipeline.
Syntax
File (Standard)
Tee-Object
[-FilePath] <String>
[-InputObject <PSObject>]
[-Append]
[<CommonParameters>]
LiteralFile
Tee-Object
-LiteralPath <String>
[-InputObject <PSObject>]
[<CommonParameters>]
Variable
Tee-Object
-Variable <String>
[-InputObject <PSObject>]
[<CommonParameters>]
Beschreibung
Das Tee-Object Cmdlet leitet die Ausgabe um, d. h. die Ausgabe eines Befehls in zwei Richtungen (z. B. den Buchstaben T). Sie speichert die Ausgabe in einer Datei oder Variable und sendet sie auch an 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
PS C:\> 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
...
Dieser Befehl ruft eine Liste der Prozesse ab, die auf dem Computer ausgeführt werden, und sendet das Ergebnis an eine Datei. Da kein zweiter Pfad angegeben ist, werden die Prozesse auch in der Konsole angezeigt.
Beispiel 2: Ausgabeprozesse an eine Variable und Select-Object
PS C:\> Get-Process notepad | Tee-Object -Variable proc | Select-Object processname,handles
ProcessName Handles
----------- -------
notepad 43
notepad 37
notepad 38
notepad 38
Dieser Befehl ruft eine Liste der Prozesse ab, die auf dem Computer ausgeführt werden, und sendet das Ergebnis an eine Variable namens proc. Anschließend werden die resultierenden Objekte an Select-Object weiterverarbeitet, wodurch die ProcessName- und Handles-Eigenschaft ausgewählt wird. Beachten Sie, dass die $proc Variable die Standardinformationen enthält, die von Get-Process zurückgegeben werden.
Beispiel 3: Ausgabesystemdateien in zwei Protokolldateien
PS C:\> Get-ChildItem -Path D: -File -System -Recurse | Tee-Object -FilePath "c:\test\AllSystemFiles.txt" -Append | Out-File c:\test\NewSystemFiles.txt
Dieser Befehl speichert eine Liste von Systemdateien in zwei Protokolldateien, einer kumulativen Datei und einer aktuellen Datei.
Der Befehl verwendet das Cmdlet Get-ChildItem, um eine rekursive Suche nach Systemdateien auf dem Laufwerk D: durchzuführen. Ein Pipelineoperator (|) sendet die Liste an Tee-Object-, die die Liste an die AllSystemFiles.txt Datei anfügen und die Liste an das Cmdlet Out-File weitergibt, wodurch die Liste in der NewSystemFiles.txt Datei gespeichert wird.
Parameter
-Append
Gibt an, dass das Cmdlet die Ausgabe an die angegebene Datei angibt. Ohne diesen Parameter ersetzt der neue Inhalt vorhandene Inhalte in der Datei ohne Warnung.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
File
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-FilePath
Gibt eine Datei an, die das Objekt in Wildcardzeichen speichert, ist zulässig, muss jedoch in eine einzelne Datei aufgelöst werden.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | True |
| Nicht anzeigen: | False |
Parametersätze
File
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-InputObject
Gibt das objekt an, das gespeichert und angezeigt werden soll. 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 ein Objekt auch an Tee-Object-senden.
Wenn Sie den InputObject Parameter mit Tee-Object-verwenden, anstatt Befehlsergebnisse an Tee-Object-, wird der InputObject-Wert, auch wenn der Wert eine Auflistung ist, die das Ergebnis eines Befehls ist, z. B. InputObject (Get-Process)-wird als einzelnes Objekt behandelt.
Da InputObject- einzelne Eigenschaften aus einem Array oder einer Auflistung von Objekten nicht zurückgeben können, empfiehlt es sich, wenn Sie Tee-Object- verwenden, um Vorgänge für eine Auflistung von Objekten für diese Objekte auszuführen, die bestimmte Werte in definierten Eigenschaften aufweisen, verwenden Sie Tee-Object- in der Pipeline, wie in den Beispielen in diesem Thema gezeigt.
Parametereigenschaften
| Typ: | PSObject |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-LiteralPath
Gibt eine Datei an, in der dieses Cmdlet das Objekt speichert. Im Gegensatz zu FilePath-wird der Wert des LiteralPath--Parameters genau so verwendet, wie er eingegeben wird. Es werden keine Zeichen als Wildcards interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einfache Anführungszeichen signalisieren PowerShell, dass keine Zeichen als Escapesequenzen interpretiert werden sollen.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | PSPath |
Parametersätze
LiteralFile
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Variable
Gibt eine Variable an, in der das Cmdlet das Objekt speichert. Geben Sie einen Variablennamen ohne das vorangehende Dollarzeichen ($) ein.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
Variable
| Position: | Named |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
PSObject
Objekte können an Tee-Object-weitergeleitet werden.
Ausgaben
PSObject
Tee-Object- gibt das Objekt zurück, das es umleitet.
Hinweise
- Sie können auch das Cmdlet Out-File oder den Umleitungsoperator verwenden, von denen beide die Ausgabe in einer Datei speichern, aber nicht an die Pipeline senden.
- Tee-Object- verwendet Unicode-Codierung, wenn es in Dateien schreibt. Daher ist die Ausgabe möglicherweise nicht ordnungsgemäß in Dateien mit einer anderen Codierung formatiert. Verwenden Sie das Cmdlet Out-File, um die Codierung anzugeben.