Tee-Object
Sparar kommandoutdata i en fil eller variabel och skickar den även nedåt i pipelinen.
Syntax
Tee-Object
[-InputObject <PSObject>]
[-FilePath] <String>
[-Append]
[<CommonParameters>]
Tee-Object
[-InputObject <PSObject>]
-LiteralPath <String>
[<CommonParameters>]
Tee-Object
[-InputObject <PSObject>]
-Variable <String>
[<CommonParameters>]
Description
Tee-Object-cmdleten omdirigerar utdata, det vill sa att den skickar utdata från ett kommando i två riktningar (till exempel bokstaven T). Den lagrar utdata i en fil eller variabel och skickar den även nedåt i pipelinen. Om Tee-Object är det sista kommandot i pipelinen visas kommandots utdata i prompten.
Exempel
Exempel 1: Utdataprocesser till en fil och till konsolen
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
...
Det här kommandot hämtar en lista över de processer som körs på datorn och skickar resultatet till en fil. Eftersom en andra sökväg inte har angetts visas processerna också i -konsolen.
Exempel 2: Utdataprocesser till en variabel och 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
Det här kommandot hämtar en lista över de processer som körs på datorn och skickar resultatet till en variabel med namnet proc. Den skickar sedan de resulterande objekten till Select-Object, som väljer egenskapen ProcessName och Handles. Observera att variabeln $proc innehåller standardinformationen som returneras av Get-Process.
Exempel 3: Mata ut systemfiler till två loggfiler
PS C:\> Get-ChildItem -Path D: -File -System -Recurse | Tee-Object -FilePath "c:\test\AllSystemFiles.txt" -Append | Out-File c:\test\NewSystemFiles.txt
Det här kommandot sparar en lista över systemfiler i två loggfiler, en kumulativ fil och en aktuell fil.
Kommandot använder cmdleten Get-ChildItem för att göra en rekursiv sökning efter systemfiler på D:-enheten. En pipelineoperator (|) skickar listan till Tee-Object, som lägger till listan i den AllSystemFiles.txt filen och skickar listan nedåt i pipelinen till cmdleten Out-File, vilket sparar listan i NewSystemFiles.txt filen.
Parametrar
-Append
Anger att cmdleten lägger till utdata i den angivna filen. Utan den här parametern ersätter det nya innehållet befintligt innehåll i filen utan varning.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Anger en fil som den här cmdleten sparar objektet till Jokertecken tillåts, men måste matchas till en enda fil.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
Anger det objekt som ska sparas och visas. Ange en variabel som innehåller objekten eller skriv ett kommando eller uttryck som hämtar objekten. Du kan också skicka ett objekt till Tee-Object.
När du använder parametern InputObject med Tee-Object, i stället för att skicka kommandoresultat till Tee-Object, behandlas InputObject-värdet – även om värdet är en samling som är resultatet av ett kommando, till exempel InputObject (Get-Process)
- som ett enskilt objekt.
Eftersom InputObject inte kan returnera enskilda egenskaper från en matris eller en samling objekt rekommenderar vi att du använder Tee-Object för att utföra åtgärder på en samling objekt för de objekt som har specifika värden i definierade egenskaper, så använder du Tee-Object i pipelinen, som du ser i exemplen i det här avsnittet.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Anger en fil som den här cmdleten sparar objektet till. Till skillnad från FilePath används värdet för parametern LiteralPath exakt som det skrivs. Inga tecken tolkas som jokertecken. Om sökvägen innehåller escape-tecken omger du den med enkla citattecken. Enkla citattecken talar om för PowerShell att inga tecken ska tolkas som escape-sekvenser.
Type: | String |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Variable
Anger en variabel som cmdleten sparar objektet till. Ange ett variabelnamn utan föregående dollartecken ($).
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
Du kan skicka objekt till Tee-Object.
Utdata
Tee-Object returnerar objektet som det omdirigerar.
Kommentarer
- Du kan också använda cmdleten Out-File eller omdirigeringsoperatorn, som båda sparar utdata i en fil men inte skickar dem nedåt i pipelinen.
- Tee-Object använder Unicode-kodning när det skriver till filer. Därför kanske utdata inte formateras korrekt i filer med en annan kodning. Om du vill ange kodningen använder du cmdleten Out-File.