Tee-Object
Salva a saída do comando em um arquivo ou variável e também a envia para o pipeline.
Sintaxe
File (Predefinição)
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
A Tee-Object saída de gravação do cmdlet em duas direções. Ele armazena a saída em um arquivo ou variável e também a envia para o pipeline. Se Tee-Object for o último comando no pipeline, a saída do comando será exibida no console.
Internamente, Tee-Object usa os Set-Variable comandos e Out-File . Esses comandos suportam o parâmetro WhatIf . O Tee-Object comando não suporta o parâmetro WhatIf . No entanto, se você encapsular Tee-Object em um script ou função que suporte o parâmetro WhatIf , Tee-Object passa o estado de WhatIf para os Set-Variable comandos and Out-File .
Exemplos
Exemplo 1: Processos de saída para um arquivo e para o console
Este exemplo obtém uma lista dos processos em execução no computador e envia o resultado para um arquivo. Como um segundo caminho não é especificado, os processos também são exibidos no 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
...
Exemplo 2: Processos de saída para uma variável e 'Select-Object'
Este exemplo obtém uma lista dos processos em execução no computador, salva-os na variável $proc e canaliza-os para Select-Object.
Get-Process notepad | Tee-Object -Variable proc | Select-Object ProcessName, Handles
ProcessName Handles
----------- -------
notepad 43
notepad 37
notepad 38
notepad 38
O cmdlet Select-Object seleciona o ProcessName e Handles propriedades. Observe que a variável $proc inclui as informações padrão retornadas por Get-Process.
Exemplo 3: Saída de arquivos do sistema para dois arquivos de log
Este exemplo salva uma lista de arquivos de sistema em dois arquivos de log, um arquivo cumulativo e um arquivo atual.
Get-ChildItem -Path D: -File -System -Recurse |
Tee-Object -FilePath "C:\test\AllSystemFiles.txt" -Append |
Out-File C:\test\NewSystemFiles.txt
O comando usa o cmdlet Get-ChildItem para fazer uma pesquisa recursiva de arquivos do sistema na unidade D:. Um operador de pipeline (|) envia a lista para Tee-Object, que acrescenta a lista ao arquivo AllSystemFiles.txt e passa a lista pelo pipeline para o cmdlet Out-File, que salva a lista no NewSystemFiles.txt file.
Exemplo 4: Use 'Tee-Object' em um script com o parâmetro **WhatIf**
O Tee-Object comando não suporta o parâmetro WhatIf . No entanto, se você encapsular Tee-Object em um script ou função que suporte o parâmetro WhatIf , Tee-Object passa o estado de WhatIf para o Set-Variable e Out-File comandos que ele usa internamente.
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 ''
Parâmetros
-Append
Indica que o cmdlet acrescenta a saída ao arquivo especificado. Sem esse parâmetro, o novo conteúdo substitui qualquer conteúdo existente no arquivo sem aviso.
Esse parâmetro foi introduzido no Windows PowerShell 3.0.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | False |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
File
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-FilePath
Especifica um arquivo no qual esse cmdlet salva o objeto Caracteres curinga são permitidos, mas devem ser resolvidos para um único arquivo.
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | True |
| NãoMostrar: | False |
Conjuntos de parâmetros
File
| Position: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-InputObject
Especifica o objeto a ser salvo e exibido. Insira uma variável que contenha os objetos ou digite um comando ou expressão que obtenha os objetos. Você também pode canalizar um objeto para Tee-Object.
Quando você usa o parâmetro InputObject com Tee-Object, em vez de canalizar os resultados do comando para Tee-Object, o valor da InputObject é tratado como um único objeto, mesmo que o valor seja uma coleção.
Propriedades dos parâmetros
| Tipo: | PSObject |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | True |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-LiteralPath
Especifica um arquivo no qual esse cmdlet salva o objeto. Ao contrário FilePath, o valor do parâmetro LiteralPath é usado exatamente como é digitado. Nenhum caractere é interpretado como carta curinga. Se o caminho incluir caracteres de escape, coloque-o entre aspas simples. Aspas simples indicam ao PowerShell para não interpretar quaisquer caracteres como sequências de escape.
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | PSPath |
Conjuntos de parâmetros
LiteralFile
| Position: | Named |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Variable
Especifica uma variável na qual o cmdlet salva o objeto. Insira um nome de variável sem o cifrão anterior ($).
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
Variable
| Position: | Named |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
Entradas
PSObject
Você pode canalizar objetos para este cmdlet.
Saídas
PSObject
Este cmdlet retorna o objeto que redireciona.
Notas
O Windows PowerShell inclui os seguintes aliases para Tee-Object:
tee
Você também pode usar o cmdlet Out-File ou o operador de redirecionamento, que salvam a saída em um arquivo, mas não a enviam pelo pipeline.
Tee-Object usa codificação "Unicode" (UTF-16LE) quando grava em arquivos. Se você precisar de uma codificação diferente, use o cmdlet Out-File com o parâmetro Encoding.