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-Object
.
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-Process
.
Przykład 3. Wyjściowe pliki systemowe do dwóch plików dziennika
W tym przykładzie zapisano listę 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, co zapisuje listę na liście w NewSystemFiles.txt file
pliku .
Parametry
-Append
Wskazuje, że polecenie cmdlet dołącza dane wyjściowe do określonego pliku. Bez tego parametru nowa zawartość zastępuje istniejącą zawartość w pliku bez ostrzeżenia.
Ten parametr został wprowadzony w Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Określa plik, który to polecenie cmdlet zapisuje obiekt w symbolach wieloznacznych, ale musi rozpoznać pojedynczy plik.
Type: | String |
Aliases: | Path |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
Określa obiekt do zapisania i wyświetlenia. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty. Możesz również potokować obiekt do Tee-Object
obiektu .
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ą.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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 je ująć w pojedynczy cudzysłów. Znaki pojedynczego cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.
Type: | String |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Variable
Określa zmienną, do którego polecenie cmdlet zapisuje obiekt. Wprowadź nazwę zmiennej bez poprzedniego znaku dolara ($
).
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
Obiekty można potokować do Tee-Object
obiektu .
Dane wyjściowe
Tee-Object
zwraca obiekt, który przekierowuje.
Uwagi
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.
Począwszy od programu PowerShell 6, Tee-Object
używa kodowania UTF-8 bez protokołu BOM podczas zapisywania w plikach. Jeśli potrzebujesz innego kodowania, użyj Out-File
polecenia cmdlet z parametrem Kodowanie .