Sdílet prostřednictvím


Tee-Object

Uloží výstup příkazu do souboru nebo proměnné a také ho odešle do kanálu.

Syntax

Tee-Object
   [-InputObject <PSObject>]
   [-FilePath] <String>
   [-Append]
   [<CommonParameters>]
Tee-Object
   [-InputObject <PSObject>]
   -LiteralPath <String>
   [<CommonParameters>]
Tee-Object
   [-InputObject <PSObject>]
   -Variable <String>
   [<CommonParameters>]

Description

Rutina Tee-Object přesměruje výstup, to znamená, že odesílá výstup příkazu dvěma směry (například písmenem T). Uloží výstup do souboru nebo proměnné a také ho odešle do kanálu. Pokud je Tee-Object posledním příkazem v kanálu, zobrazí se výstup příkazu na příkazovém řádku.

Příklady

Příklad 1: Výstup procesů do souboru a do konzoly

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
...

Tento příkaz získá seznam procesů spuštěných v počítači a odešle výsledek do souboru. Vzhledem k tomu, že není zadána druhá cesta, zobrazí se v konzole také procesy.

Příklad 2: Výstup procesů do proměnné a 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

Tento příkaz získá seznam procesů spuštěných v počítači a odešle výsledek do proměnné s názvem proc. Potom se výsledné objekty předá na Select-Object, který vybere ProcessName a Handles vlastnost. Všimněte si, že proměnná $proc obsahuje výchozí informace vrácené procesem Get-Process.

Příklad 3: Výstup systémových souborů do dvou souborů protokolu

PS C:\> Get-ChildItem -Path D: -File -System -Recurse | Tee-Object -FilePath "c:\test\AllSystemFiles.txt" -Append | Out-File c:\test\NewSystemFiles.txt

Tento příkaz uloží seznam systémových souborů do dvou souborů protokolu, kumulativního souboru a aktuálního souboru.

Příkaz používá rutinu Get-ChildItem k rekurzivnímu vyhledávání systémových souborů na jednotce D:. Operátor kanálu (|) odešle seznam do objektu Tee-Object, který seznam připojí k souboru AllSystemFiles.txt a předá seznam kanálem rutině Out-File, která seznam uloží do souboru NewSystemFiles.txt.

Parametry

-Append

Označuje, že rutina připojí výstup k zadanému souboru. Bez tohoto parametru nahradí nový obsah veškerý existující obsah v souboru bez upozornění.

Tento parametr byl zaveden v Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilePath

Určuje soubor, který tato rutina uloží objekt na zástupné znaky jsou povoleny, ale musí být přeloženy do jednoho souboru.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:True

-InputObject

Určuje objekt, který se má uložit a zobrazit. Zadejte proměnnou, která obsahuje objekty, nebo zadejte příkaz nebo výraz, který objekty získá. Objekt můžete také nakreslit do objektu Tee-Object.

Při použití parametru InputObject s Tee-Object, místo propojení výsledků příkazu do Tee-Object, hodnota InputObject-i v případě, že hodnota je kolekce, která je výsledkem příkazu, například InputObject (Get-Process)- je považován za jeden objekt. Vzhledem k tomu , že InputObject nemůže vrátit jednotlivé vlastnosti z pole nebo kolekce objektů, je doporučeno, pokud použijete Tee-Object k provádění operací s kolekcí objektů pro objekty, které mají specifické hodnoty v definovaných vlastnostech, použít Tee-Object v kanálu, jak je znázorněno v příkladech v tomto tématu.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

Určuje soubor, do kterého tato rutina uloží objekt. Na rozdíl od FilePath se hodnota parametru LiteralPath používá přesně tak, jak je zadána. Žádné znaky nejsou interpretovány jako zástupné znaky. Pokud cesta obsahuje řídicí znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, že nemá interpretovat žádné znaky jako řídicí sekvence.

Type:String
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Variable

Určuje proměnnou, do které rutina uloží objekt. Zadejte název proměnné bez předchozího znaku dolaru ($).

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

PSObject

Objekty můžete do objektu Tee-Object převést.

Výstupy

PSObject

Tee-Object vrátí objekt, který přesměruje.

Poznámky

  • Můžete také použít rutinu Out-File nebo operátor přesměrování, které uloží výstup do souboru, ale neodesílají ho kanálem.
  • Tee-Object používá kódování Unicode při zápisu do souborů. V důsledku toho nemusí být výstup správně naformátovaný v souborech s jiným kódováním. K určení kódování použijte rutinu Out-File.