Udostępnij za pośrednictwem


Tee-Object

Zapisuje dane wyjściowe polecenia w pliku lub zmiennej, a także wysyła je w dół potoku.

Składnia

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

Opis

Polecenie Tee-Object cmdlet przekierowuje dane wyjściowe, czyli wysyła dane wyjściowe polecenia w dwóch kierunkach (na przykład literę T). Przechowuje dane wyjściowe w pliku lub zmiennej, a także wysyła je w dół potoku. Jeśli Tee-Object jest ostatnim poleceniem w potoku, dane wyjściowe polecenia są wyświetlane w wierszu polecenia.

Przykłady

Przykład 1: Procesy wyjściowe do pliku i do konsoli

Ten przykład pobiera listę procesów uruchomionych na komputerze i wysyła wynik do pliku. Ponieważ nie określono drugiej ścieżki, procesy są również wyświetlane w konsoli programu .

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

Przykład 2: Procesy wyjściowe do zmiennej i "Select-Object"

Ten przykład pobiera listę procesów uruchomionych na komputerze, zapisuje je w zmiennej $proc i potokuje je do Select-Objectelementu .

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

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

Polecenie Select-Object cmdlet wybiera właściwości ProcessName i Handles . Należy pamiętać, że zmienna $proc zawiera informacje domyślne zwracane przez Get-Processelement .

Przykład 3: Dane wyjściowe plików systemowych do dwóch plików dziennika

W tym przykładzie jest zapisywana lista plików systemowych w dwóch plikach dziennika, pliku skumulowanego i bieżącego pliku.

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

Polecenie używa Get-ChildItem polecenia cmdlet do wykonywania cyklicznego wyszukiwania plików systemowych na dysku D:. Operator potoku (|) wysyła listę do Tee-Object, która dołącza listę do pliku AllSystemFiles.txt i przekazuje listę w dół potoku do Out-File polecenia cmdlet, które zapisuje listę na liście w NewSystemFiles.txt filepliku .

Parametry

-Append

Wskazuje, że polecenie cmdlet dołącza dane wyjściowe do określonego pliku. Bez tego parametru nowa zawartość zastępuje dowolną istniejącą zawartość w pliku bez ostrzeżenia.

Ten parametr został wprowadzony w programie Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-FilePath

Określa plik, który to polecenie cmdlet zapisuje obiekt w postaci symboli wieloznacznych, ale musi zostać rozpoznany jako pojedynczy plik.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-InputObject

Określa obiekt, który ma zostać zapisany i wyświetlony. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty. Możesz również przekazać obiekt do Tee-Objectobiektu .

Jeśli używasz parametru InputObject z parametrem Tee-Object, zamiast potokowania wyników polecenia do Tee-Object, wartość InputObject jest traktowana jako pojedynczy obiekt, nawet jeśli wartość jest kolekcją.

Typ:PSObject
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-LiteralPath

Określa plik, do którego to polecenie cmdlet zapisuje obiekt. W przeciwieństwie do parametru FilePath wartość parametru LiteralPath jest używana dokładnie tak, jak jest typowana. Znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy ująć ją w pojedynczy cudzysłów. Pojedyncze znaki cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.

Typ:String
Aliasy:PSPath
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Variable

Określa zmienną, do którego polecenie cmdlet zapisuje obiekt. Wprowadź nazwę zmiennej bez poprzedniego znaku dolara ($).

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

PSObject

Do tego polecenia cmdlet można przekazać obiekty potokowe.

Dane wyjściowe

PSObject

To polecenie cmdlet zwraca obiekt, który przekierowuje.

Uwagi

Program Windows PowerShell zawiera następujące aliasy dla programu Tee-Object:

  • tee

Możesz również użyć Out-File polecenia cmdlet lub operatora przekierowania, z których oba zapisują dane wyjściowe w pliku, ale nie wysyłają go w dół potoku.

Tee-Object używa kodowania "Unicode" (UTF-16LE) podczas zapisywania w plikach. Jeśli potrzebujesz innego kodowania, użyj Out-File polecenia cmdlet z parametrem Kodowanie .