Tee-Object
Hiermee wordt de opdrachtuitvoer opgeslagen in een bestand of variabele en wordt deze ook naar beneden verzonden naar de pijplijn.
Syntax
File (Standaard)
Tee-Object
[-FilePath] <String>
[-InputObject <PSObject>]
[-Append]
[<CommonParameters>]
LiteralFile
Tee-Object
-LiteralPath <String>
[-InputObject <PSObject>]
[<CommonParameters>]
Variable
Tee-Object
-Variable <String>
[-InputObject <PSObject>]
[<CommonParameters>]
Description
De Tee-Object cmdlet schrijft uitvoer in twee richtingen. De uitvoer wordt opgeslagen in een bestand of variabele en verzendt deze ook naar beneden in de pijplijn. Als Tee-Object dit de laatste opdracht in de pijplijn is, wordt de opdrachtuitvoer weergegeven in de console.
Intern gebruikt Tee-Object u de Set-Variable en Out-File opdrachten. Deze opdrachten ondersteunen de WhatIf-parameter . De Tee-Object opdracht biedt geen ondersteuning voor de WhatIf-parameter . Als u echter een script of functie verpakt Tee-Object die ondersteuning biedt voor de WhatIf-parameter , Tee-Object geeft u de status van WhatIf door aan de Set-Variable en Out-File opdrachten.
Voorbeelden
Voorbeeld 1: Uitvoerprocessen naar een bestand en naar de console
In dit voorbeeld wordt een lijst weergegeven met de processen die op de computer worden uitgevoerd en wordt het resultaat naar een bestand verzonden. Omdat er geen tweede pad is opgegeven, worden de processen ook weergegeven in de console.
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
...
Voorbeeld 2: Uitvoerprocessen naar een variabele en Select-Object
In dit voorbeeld wordt een lijst weergegeven met de processen die op de computer worden uitgevoerd, worden deze opgeslagen in de $proc variabele en worden ze door leidingen naar Select-Object.
Get-Process notepad | Tee-Object -Variable proc | Select-Object ProcessName, Handles
ProcessName Handles
----------- -------
notepad 43
notepad 37
notepad 38
notepad 38
De cmdlet Select-Object selecteert de ProcessName- en verwerkt eigenschappen. Houd er rekening mee dat de variabele $proc de standaardgegevens bevat die worden geretourneerd door Get-Process.
Voorbeeld 3: Systeembestanden uitvoeren naar twee logboekbestanden
In dit voorbeeld wordt een lijst met systeembestanden opgeslagen in twee logboekbestanden, een cumulatief bestand en een huidig bestand.
Get-ChildItem -Path D: -File -System -Recurse |
Tee-Object -FilePath "C:\test\AllSystemFiles.txt" -Append |
Out-File C:\test\NewSystemFiles.txt
De opdracht maakt gebruik van de Get-ChildItem cmdlet om een recursieve zoekopdracht uit te voeren naar systeembestanden op het station D: . Een pijplijnoperator (|) verzendt de lijst naar Tee-Object, waarmee de lijst wordt toegevoegd aan het AllSystemFiles.txt bestand en de lijst wordt doorgegeven aan de Out-File-cmdlet, waarmee de lijst in de NewSystemFiles.txt filewordt opgeslagen.
Voorbeeld 4: 'Tee-Object' gebruiken in een script met de parameter **WhatIf**
De Tee-Object opdracht biedt geen ondersteuning voor de WhatIf-parameter . Als u echter een script of functie verpakt Tee-Object die ondersteuning biedt voor de WhatIf-parameter , Tee-Object geeft u de status van WhatIf door aan de Set-Variable en Out-File opdrachten die intern worden gebruikt.
PS> function Test-Tee {
[Cmdletbinding(SupportsShouldProcess)]
Param()
$true|tee -Variable b
"Variable `$b is set to '$b'"
}
PS> Test-Tee
True
Variable $b is set to 'True'
PS> Test-Tee -WhatIf
True
What if: Performing the operation "Set variable" on target "Name: b Value: True".
Variable $b is set to ''
Parameters
-Append
Geeft aan dat de cmdlet de uitvoer toevoegt aan het opgegeven bestand. Zonder deze parameter vervangt de nieuwe inhoud alle bestaande inhoud in het bestand zonder waarschuwing.
Deze parameter is geïntroduceerd in Windows PowerShell 3.0.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | False |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
File
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-FilePath
Hiermee geeft u een bestand op dat het object door deze cmdlet wordt opgeslagen in jokertekens, maar moet worden omgezet in één bestand.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | True |
| DontShow: | False |
Parametersets
File
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-InputObject
Hiermee geeft u het object op dat moet worden opgeslagen en weergegeven. Voer een variabele in die de objecten bevat of typ een opdracht of expressie waarmee de objecten worden opgehaald. U kunt ook een object doorsluisen naar Tee-Object.
Wanneer u de parameter InputObject gebruikt met Tee-Object, Tee-Objectwordt de InputObject waarde beschouwd als één object, zelfs als de waarde een verzameling is.
Parametereigenschappen
| Type: | PSObject |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | True |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-LiteralPath
Hiermee geeft u een bestand op waarnaar het object door deze cmdlet wordt opgeslagen. In tegenstelling tot FilePath, wordt de waarde van de parameter LiteralPath exact gebruikt zoals deze is getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escape-tekens bevat, zet het dan tussen enkele aanhalingstekens. Enkele aanhalingstekens zorgen ervoor dat PowerShell geen tekens als escapesequenties interpreteert.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | PSPath |
Parametersets
LiteralFile
| Position: | Named |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Variable
Hiermee geeft u een variabele op waarnaar het object wordt opgeslagen door de cmdlet. Voer een variabelenaam in zonder het voorgaande dollarteken ($).
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
Variable
| Position: | Named |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
Invoerwaarden
PSObject
U kunt objecten doorsluisen naar deze cmdlet.
Uitvoerwaarden
PSObject
Met deze cmdlet wordt het object geretourneerd dat wordt omgeleid.
Notities
Windows PowerShell bevat de volgende aliassen voor Tee-Object:
tee
U kunt ook de Out-File-cmdlet of de omleidingsoperator gebruiken, die beide de uitvoer in een bestand opslaan, maar deze niet naar de pijplijn verzenden.
Tee-Object gebruikt UTF-16LE-codering (Unicode) wanneer deze naar bestanden schrijft. Als u een andere codering nodig hebt, gebruikt u de cmdlet Out-File met de parameter Codering.