Tee-Object

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

Syntax

Tee-Object
   [-InputObject <PSObject>]
   [-FilePath] <String>
   [-Append]
   [[-Encoding] <Encoding>]
   [<CommonParameters>]
Tee-Object
   [-InputObject <PSObject>]
   -LiteralPath <String>
   [[-Encoding] <Encoding>]
   [<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 ve dvou směrech (například písmeno T). Uloží výstup do souboru nebo proměnné a odešle ho také do kanálu. Pokud Tee-Object je posledním příkazem v kanálu, zobrazí se výstup příkazu na příkazovém řádku.

Příklady

Příklad 1: Výstupní procesy do souboru a konzoly

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

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

Příklad 2: Výstupní procesy do proměnné a Select-Object

Tento příklad získá seznam procesů spuštěných v počítači, uloží je do $proc proměnné a předá je do Select-Object.

Get-Process notepad | Tee-Object -Variable proc | Select-Object processname,handles

ProcessName                              Handles
-----------                              -------
notepad                                  43
notepad                                  37
notepad                                  38
notepad                                  38

Rutina Select-Object vybere vlastnosti ProcessName a Handles . Všimněte si, že $proc proměnná obsahuje výchozí informace vrácené Get-Process.

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

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

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

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 Tee-Objectdo souboru AllSystemFiles.txt a předá seznam do rutiny, Out-File která seznam uloží do souboru NewSystemFiles.txt file.

Parametry

-Append

Označuje, že rutina připojí výstup k zadanému souboru. Bez tohoto parametru nový obsah nahradí 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:False
Accept pipeline input:False
Accept wildcard characters:False

-Encoding

Určuje typ kódování cílového souboru. Výchozí hodnota je utf8NoBOM.

Přijatelné hodnoty pro tento parametr jsou následující:

  • ascii: Používá kódování pro znakovou sadu ASCII (7bitová).
  • bigendianunicode: Kóduje ve formátu UTF-16 pomocí velkého bajtového pořadí.
  • oem: Používá výchozí kódování pro ms-DOS a konzolové programy.
  • unicode: Kóduje ve formátu UTF-16 pomocí malého bajtového pořadí.
  • utf7: Kóduje ve formátu UTF-7.
  • utf8: Kóduje ve formátu UTF-8.
  • utf8BOM: Kóduje ve formátu UTF-8 pomocí značky pořadí bajtů (BOM)
  • utf8NoBOM: Kódování ve formátu UTF-8 bez značky pořadí bajtů (BOM)
  • utf32: Kóduje ve formátu UTF-32.

Počínaje PowerShellem 6.2 umožňuje parametr kódování také číselné ID registrovaných kódových stránek (například -Encoding 1251) nebo názvy řetězců registrovaných kódových stránek (například -Encoding "windows-1251"). Další informace najdete v dokumentaci k .NET pro Kódování.CodePage.

Tento parametr byl zaveden v PowerShellu 7.2.

Poznámka

UTF-7* se už nedoporučuje používat. Od PowerShellu 7.1 se zapíše upozornění, pokud zadáte utf7 parametr Kódování .

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:1
Default value:UTF8NoBOM
Accept pipeline input:False
Accept wildcard characters:False

-FilePath

Určuje soubor, který tato rutina uloží objekt do zástupných znaků, jsou povoleny, ale musí se přeložit na jeden soubor.

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

-InputObject

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

Pokud použijete parametr InputObject s Tee-Object, místo piping command results to Tee-Object, inputObject hodnota je považována za jeden objekt, i když hodnota je kolekce.

Type:PSObject
Position:Named
Default value:None
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 nemají interpretovat žádné znaky jako řídicí sekvence.

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
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
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

PSObject

Objekty můžete roušit na Tee-Object.

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í, z nichž oba ukládají výstup do souboru, ale neodesílají ho do kanálu.

Počínaje PowerShellem 6 Tee-Object používá kódování BOM-less UTF-8 při zápisu do souborů. Pokud potřebujete jiné kódování, použijte rutinu Out-File s parametrem Kódování .