Write-Output
Envia os objetos especificados para o próximo comando no pipeline. Se o comando for o último no pipeline, os objetos serão exibidos no console.
Syntax
Write-Output
[-InputObject] <PSObject[]>
[-NoEnumerate]
[<CommonParameters>]
Description
O Write-Output
cmdlet envia o objeto especificado pelo pipeline para o próximo comando.
Se o comando for o último no pipeline, o objeto é exibido no console.
Write-Output
envia objetos pelo pipeline primário, também conhecido como "fluxo de saída" ou "pipeline de êxito". Para enviar objetos de erro no pipeline de erro, use Write-Error.
Esse cmdlet é usado normalmente em scripts para exibir cadeias de caracteres e outros objetos no console. Um dos aliases internos para Write-Output
é echo
e semelhante a outros shells que usam echo
, o comportamento padrão é exibir a saída no final de um pipeline. No PowerShell, geralmente não é necessário usar o cmdlet em instâncias em que a saída é exibida por padrão. Por exemplo, Get-Process | Write-Output
é equivalente a Get-Process
. Ou, echo "Home directory: $HOME"
pode ser escrito, "Home directory: $HOME"
.
Por padrão, Write-Output
enumera por meio de coleções fornecidas ao cmdlet. No entanto, Write-Output
também pode ser usado para passar coleções pelo pipeline como um único objeto com o parâmetro NoEnumerate .
Exemplos
Exemplo 1: obter objetos e gravá-los no console
$P = Get-Process
Write-Output $P
O primeiro comando obtém processos em execução no computador e os armazena na $P
variável.
O segundo e o terceiro comandos exibem os objetos de $P
processo no console.
Exemplo 2: passar a saída para outro cmdlet
Write-Output "test output" | Get-Member
Esse comando canaliza a cadeia de caracteres "saída de teste" para o Get-Member
cmdlet, que exibe os membros da classe System.String , demonstrando que a cadeia de caracteres foi passada ao longo do pipeline.
Exemplo 3: Suprimir enumeração na saída
Write-Output 1,2,3 | Measure-Object
Count : 3
...
Write-Output 1,2,3 -NoEnumerate | Measure-Object
Count : 1
...
Esse comando adiciona o parâmetro NoEnumerate para tratar uma coleção ou matriz como um único objeto por meio do pipeline.
Parâmetros
-InputObject
Especifica os objetos para envio pelo pipeline. Insira uma variável que contém os objetos ou digite um comando ou uma expressão que obtém os objetos.
Type: | PSObject[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoEnumerate
Por padrão, o Write-Output
cmdlet sempre enumera sua saída. O parâmetro NoEnumerate suprime o comportamento padrão e impede Write-Output
a enumeração da saída. O parâmetro NoEnumerate não terá efeito se o comando estiver encapsulado em parênteses, porque os parênteses forçam a enumeração. Por exemplo, (Write-Output 1,2,3)
ainda enumera a matriz.
Observação
Essa opção só funciona corretamente com o PowerShell Core 6.2 e mais recente. Em versões mais antigas do PowerShell Core, a coleção ainda é enumerada mesmo com o uso dessa opção.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Você pode canalizar objetos para Write-Output
.
Saídas
Write-Output
retorna os objetos que são enviados como entrada.