Tee-Object
Guarda a saída do comando num ficheiro ou variável e também envia-a para baixo no pipeline.
Syntax
Tee-Object
[-InputObject <PSObject>]
[-FilePath] <String>
[-Append]
[<CommonParameters>]
Tee-Object
[-InputObject <PSObject>]
-LiteralPath <String>
[<CommonParameters>]
Tee-Object
[-InputObject <PSObject>]
-Variable <String>
[<CommonParameters>]
Description
O cmdlet Tee-Object redireciona a saída, ou seja, envia a saída de um comando em duas direções (como a letra T). Armazena a saída num ficheiro ou variável e também envia-a para baixo no pipeline. Se Tee-Object for o último comando no pipeline, a saída do comando é apresentada na linha de comandos.
Exemplos
Exemplo 1: processos de saída para um ficheiro e para a consola
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
...
Este comando obtém uma lista dos processos em execução no computador e envia o resultado para um ficheiro. Uma vez que não é especificado um segundo caminho, os processos também são apresentados na consola do .
Exemplo 2: processos de saída para uma variável e 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
Este comando obtém uma lista dos processos em execução no computador e envia o resultado para uma variável com o nome proc. Em seguida, encaminha os objetos resultantes para Select-Object, que seleciona a propriedade ProcessName e Handles. Tenha em atenção que a variável $proc inclui as informações predefinidas devolvidas pela Get-Process.
Exemplo 3: exportar ficheiros do sistema para dois ficheiros de registo
PS C:\> Get-ChildItem -Path D: -File -System -Recurse | Tee-Object -FilePath "c:\test\AllSystemFiles.txt" -Append | Out-File c:\test\NewSystemFiles.txt
Este comando guarda uma lista de ficheiros de sistema em dois ficheiros de registo, um ficheiro cumulativo e um ficheiro atual.
O comando utiliza o cmdlet Get-ChildItem para fazer uma pesquisa recursiva para ficheiros de sistema na unidade D:. Um operador de pipeline (|) envia a lista para Tee-Object, que acrescenta a lista ao ficheiro AllSystemFiles.txt e passa a lista para baixo no pipeline para o cmdlet Out-File, que guarda a lista no ficheiro de NewSystemFiles.txt.
Parâmetros
-Append
Indica que o cmdlet acrescenta a saída ao ficheiro especificado. Sem este parâmetro, o novo conteúdo substitui qualquer conteúdo existente no ficheiro sem aviso prévio.
Este parâmetro foi introduzido no Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Especifica um ficheiro que este cmdlet guarda o objeto em Carateres universais são permitidos, mas tem de ser resolvido para um único ficheiro.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
Especifica o objeto a ser guardado e apresentado. Introduza uma variável que contenha os objetos ou escreva um comando ou expressão que obtenha os objetos. Também pode encaminhar um objeto para Tee-Object.
Quando utiliza o parâmetro InputObject com Tee-Object, em vez de encaminhar os resultados do comando para Tee-Object, o valor InputObject - mesmo que o valor seja uma coleção que é o resultado de um comando, como InputObject (Get-Process)
-é tratado como um único objeto.
Uma vez que InputObject não pode devolver propriedades individuais de uma matriz ou coleção de objetos, recomenda-se que, se utilizar o Tee-Object para realizar operações numa coleção de objetos para os objetos que têm valores específicos em propriedades definidas, utilize Tee-Object no pipeline, conforme mostrado nos exemplos deste tópico.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Especifica um ficheiro no qual este cmdlet guarda o objeto. Ao contrário de FilePath, o valor do parâmetro LiteralPath é utilizado exatamente como é escrito. Não são interpretados carateres universais. Se o caminho incluir carateres de escape, coloque-o entre plicas. As aspas únicas indicam ao PowerShell para não interpretar os carateres como sequências de escape.
Type: | String |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Variable
Especifica uma variável na qual o cmdlet guarda o objeto. Introduza um nome de variável sem o cifrão anterior ($).
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Pode encaminhar objetos para Tee-Object.
Saídas
Tee-Object devolve o objeto que redireciona.
Notas
- Também pode utilizar o cmdlet Out-File ou o operador de redirecionamento, ambos os quais guardam a saída num ficheiro, mas não o enviam para baixo no pipeline.
- O Tee-Object utiliza a codificação Unicode quando escreve em ficheiros. Como resultado, a saída pode não estar formatada corretamente em ficheiros com uma codificação diferente. Para especificar a codificação, utilize o cmdlet Out-File.