Como Produzir Mensagens Informativas no PowerShell

  1. Introdução à Exportação de Saída no PowerShell
  2. o Cmdlet Write-Output no PowerShell
  3. o Cmdlet Write-Host e Write-Information no PowerShell
  4. o Cmdlet Write-Warning no PowerShell
  5. o Cmdlet Write-Debug no PowerShell
  6. o Cmdlet Write-Error no PowerShell
  7. o Cmdlet Write-Verbose no PowerShell
Como Produzir Mensagens Informativas no PowerShell

Escrever mensagens informativas no console é um processo essencial em qualquer linguagem, pois fornece feedback correto ao usuário. No entanto, existem várias maneiras de imprimir mensagens no Windows PowerShell.

Este artigo irá diferenciar os vários comandos de escrita, como escrever mensagens informativas, de aviso e de erro, e fornecer situações sobre quando e onde podemos usá-los.

Introdução à Exportação de Saída no PowerShell

Antes de começarmos a discutir os diferentes comandos de escrita, vale a pena notar que o PowerShell pode gerar uma mensagem envolvendo uma única linha com aspas simples ('') ou aspas duplas ("").

Exemplo de Código:

"Hello World!"
'Hello World'

Saída:

Hello World!
Hello World

Essa sintaxe é possível no PowerShell devido à expressão literal da string e ao pipeline de string oculto. Os vários trechos de código acima são equivalentes ao exemplo de código abaixo.

Exemplo de Código:

"Hello World!" | Out-Host

O comando Out-Host envia os objetos precedidos para exibição no console.

o Cmdlet Write-Output no PowerShell

O primeiro método de impressão é o comando Write-Output. Este cmdlet é a sintaxe mais básica de todos os métodos de impressão dentro do ambiente de script do PowerShell.

Podemos equipará-lo a muitos métodos básicos de impressão de diferentes idiomas, como print e stdout.

Exemplo de Código:

Write-Output "Hello World!"

Saída:

Hello World!

o Cmdlet Write-Host e Write-Information no PowerShell

O comando Write-Host é outro método de impressão semelhante à maneira anterior, Write-Output.

A única diferença deste comando antes de ser atualizado no PowerShell 5.0 é que o método só pode gerar mensagens com cores diferentes usando os parâmetros -BackgroundColor e -ForegroundColor.

Como mencionado, a partir do Windows PowerShell 5.0, Write-Host agora é um wrapper para Write-Information. Isso nos permite usar Write-Host para emitir saída para o fluxo de informações.

Esse cmdlet permite a supressão ou captura de dados escritos usando o comando Write-Host, enquanto preserva a compatibilidade com versões anteriores.

A variável de preferência $InformationPreference e o parâmetro padrão -InformationAction não afetam as mensagens Write-Host. A exceção a essa regra é -InformationAction Ignore, que efetivamente suprime a saída de Write-Host.

Escrever para o fluxo de informações usando Write-Host ou Write-information não criará problemas com sua string de saída.

Também podemos manipular a visibilidade do fluxo de informações se usarmos o parâmetro -InformationAction, desde que também vinculamos o valor do parâmetro fornecido às instruções Write-Host na função.

Por exemplo, o exemplo abaixo desativará o fluxo de informações por padrão, a menos que solicitado o contrário através do parâmetro -InformationAction.

Write-Host 'This is a test message' -InformationAction $InformationPreference -ForegroundColor Green

o Cmdlet Write-Warning no PowerShell

O comando Write-Warning escreve uma mensagem de aviso para o host do Windows PowerShell. A resposta ao evento de aviso depende do valor da variável $WarningPreference do usuário e do parâmetro padrão -WarningAction.

Os valores válidos da variável $WarningPreference são os seguintes.

  1. Stop - Exibe as mensagens de aviso e erro e, em seguida, para a execução.
  2. Inquire - Exibe a mensagem de aviso e solicita ao usuário permissão para continuar na forma de uma mensagem de confirmação.
  3. Continue - O valor padrão da variável. Exibe a mensagem de aviso e, em seguida, a executa.
  4. SilentlyContinue - Não exibe a mensagem de aviso. Continua executando.

Exemplo de Código:

Write-Warning "This is only a test warning notification." -WarningAction Continue

o Cmdlet Write-Debug no PowerShell

O comando Write-Debug é também outro método de impressão no PowerShell. No entanto, isso é geralmente usado mais em desenvolvimento para imprimir mensagens de depuração no ambiente de script.

As mensagens de depuração não são exibidas por padrão, mas podem ser alteradas usando a variável $debugPreference.

Exemplo de Código:

Write-Debug "Error on line 1. Please investigate."
$debugPreference = "Continue"
Write-Debug "Error on line 5. Please investigate."

Saída:

DEBUG: Error on line 5. Please investigate.

o Cmdlet Write-Error no PowerShell

O comando Write-Error gera um erro não terminante. Por padrão, os erros são enviados para o fluxo de erro do programa host do PowerShell para serem exportados junto com a saída.

Para gerar um erro não terminante, insira uma string de mensagem de erro, um objeto ErrorRecord ou um objeto Exception. Em seguida, use os diferentes parâmetros do Write-Error para preencher o registro de erro que iremos exportar.

Erros não terminantes escreverão um erro no fluxo de erro, mas não interromperão o processamento do comando. Por exemplo, se um erro não terminante for lançado em um item em um conjunto de itens de entrada, o cmdlet continuará a processar os outros itens.

Exemplo de Código:

Write-Error "Invalid object" -ErrorId B1 -TargetObject $_

Saída:

Write-Error "Invalid object" -ErrorId B1 -TargetObject $_ : Invalid object
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : B1

o Cmdlet Write-Verbose no PowerShell

O comando Write-Verbose escreve texto no fluxo de mensagem detalhada do PowerShell.

Assim como o comando Write-Debug, a mensagem detalhada não é exibida por padrão, mas pode ser exibida usando a variável $VerbosePreference ou adicionando o parâmetro de alternância -Verbose.

Exemplo de Código:

Write-Verbose -Message "This will not be displayed."
Write-Verbose -Message "This will be displayed" -Verbose

Saída:

VERBOSE: This will be displayed
Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn