about_Special_Characters

Descrição breve

Descreve as sequências de caracteres especiais que controlam como o PowerShell interpreta os próximos caracteres na sequência.

Descrição longa

O PowerShell oferece suporte a um conjunto de sequências de caracteres especiais que são usadas para representar caracteres que não fazem parte do conjunto de caracteres padrão. As sequências são comumente conhecidas como sequências de escape.

As sequências de escape começam com o caractere backtick, conhecido como acento grave (ASCII 96), e diferenciam maiúsculas de minúsculas. O caractere backtick também pode ser referido como o personagem de escape.

As sequências de escape só são interpretadas quando contidas em cadeias de caracteres (") de aspas duplas.

O PowerShell reconhece estas sequências de escape:

Sequência Descrição
`0 Nulo
`a Alerta
`b Backspace
`e Escape (adicionado no PowerShell 6)
`f Avanço de formulário
`n Nova linha
`r Retorno de carro
`t Guia horizontal
`u{x} Sequência de escape Unicode (adicionada ao PowerShell 6)
`v Guia vertical

O PowerShell também tem um token especial para marcar onde você deseja que a análise pare. Todos os caracteres que seguem esse token são usados como valores literais que não são interpretados.

Tokens de análise especiais:

Sequência Descrição
-- Tratar os valores restantes como argumentos e não parâmetros
--% Pare de analisar qualquer coisa que se segue

Nulo ('0)

O caractere nulo (`0) aparece como um espaço vazio na saída do PowerShell. Essa funcionalidade permite que você use o PowerShell para ler e processar arquivos de texto que usam caracteres nulos, como terminação de cadeia de caracteres ou indicadores de término de registro. O caractere especial nulo não é equivalente à variável, que armazena $null um valor nulo .

Alerta ('a)

O caractere de alerta (`a) envia um sinal de bipe para o alto-falante do computador. Você pode usar esse caractere para avisar um usuário sobre uma ação iminente. O exemplo a seguir envia dois sinais de bipe para o alto-falante do computador local.

for ($i = 0; $i -le 1; $i++){"`a"}

Backspace ('b)

O caractere backspace (`b) move o cursor para trás um caractere, mas não exclui nenhum caractere.

O exemplo grava a palavra backup e, em seguida, move o cursor para trás duas vezes. Em seguida, na nova posição, escreve um espaço seguido da palavra para fora.

"backup`b`b out"
back out

Fuga ('e)

Observação

Esse caractere especial foi adicionado no PowerShell 6.0.

O caractere de escape (`e) é mais comumente usado para especificar uma sequência de terminal virtual (sequência de escape ANSI) que modifica a cor do texto e outros atributos de texto, como negrito e sublinhado. Essas sequências também podem ser usadas para posicionamento do cursor e rolagem. O host do PowerShell deve oferecer suporte a sequências de terminal virtual. Você pode verificar o valor booleano de $Host.UI.SupportsVirtualTerminal para determinar se essas sequências ANSI são suportadas.

Para obter mais informações sobre sequências de escape ANSI, confira o artigo Código de escape ANSI na Wikipédia.

O exemplo a seguir gera texto com uma cor verde de primeiro plano.

$fgColor = 32 # green
"`e[${fgColor}mGreen text`e[0m"
Green text

Alimentação de formulários ('f)

O caractere de feed de formulário (`f) é uma instrução de impressão que ejeta a página atual e continua a impressão na próxima página. O caractere de feed de formulário afeta apenas documentos impressos. Ele não afeta a saída da tela.

Nova linha ('n)

O novo caractere de linha (`n) insere uma quebra de linha imediatamente após o caractere.

Este exemplo mostra como usar o novo caractere de linha para criar quebras de linha em um Write-Host comando.

"There are two line breaks to create a blank line`n`nbetween the words."
There are two line breaks to create a blank line

between the words.

Retorno do transporte ('r)

O caractere de retorno de carro (`r) move o cursor de saída para o início da linha atual e continua escrevendo. Todos os caracteres na linha atual são substituídos.

Neste exemplo, o texto antes do retorno de carro é substituído.

Write-Host "These characters are overwritten.`rI want this text instead "

Observe que o texto antes do `r caractere não é excluído, ele é substituído.

I want this text instead written.

Guia horizontal ('t)

O caractere de tabulação horizontal (`t) avança para a próxima parada de tabulação e continua a escrever nesse ponto. Por padrão, o console do PowerShell tem uma parada de tabulação a cada oitavo espaço.

Este exemplo insere duas guias entre cada coluna.

"Column1`t`tColumn2`t`tColumn3"
Column1         Column2         Column3

Caractere Unicode ('u{x})

Observação

Esse caractere especial foi adicionado no PowerShell 6.0.

A sequência de escape Unicode (`u{x}) permite que você especifique qualquer caractere Unicode pela representação hexadecimal de seu ponto de código. Isso inclui caracteres Unicode acima do Plano Multilíngue Básico (>0xFFFF), que inclui caracteres emoji, como o caractere polegar para cima (`u{1F44D}). A sequência de escape Unicode requer pelo menos um dígito hexadecimal e suporta até seis dígitos hexadecimais. O valor hexadecimal máximo para a sequência é 10FFFF.

Este exemplo gera a saída do símbolo de seta para cima para baixo (↕).

"`u{2195}"

Guia vertical ('v)

O caractere de tabulação vertical (`v) avança para a próxima parada de tabulação vertical e grava a saída restante nesse ponto. A renderização da guia vertical depende do dispositivo e do terminal.

Write-Host "There is a vertical tab`vbetween the words."

Os exemplos a seguir mostram a saída renderizada da guia vertical em alguns ambientes comuns.

O aplicativo host do Console do Windows interpreta (`v) como um caractere especial sem espaçamento extra adicionado.

There is a vertical tab♂between the words.

O Terminal do Windows renderiza o caractere de tabulação vertical como um retorno de carro e alimentação de linha. O restante da saída é impresso no início da próxima linha.

There is a vertical tab
between the words.

Em impressoras ou em consoles baseados em unix, o caractere de tabulação vertical avança para a próxima linha e grava a saída restante nesse ponto.

There is a vertical tab
                       between the words.

Continuação de linha

O caractere backtick também pode ser usado no final de uma linha como um sinal para o analisador do PowerShell de que o comando continua na próxima linha. Para obter mais informações, consulte about_Parsing.

O token de fim de parâmetros (--)

O token de fim de parâmetros (--) indica que todos os argumentos que se seguem a ele devem ser passados em sua forma real como se aspas duplas fossem colocadas ao redor deles. Por exemplo, usando -- você pode gerar a saída da cadeia de caracteres -InputObject sem usar aspas ou interpretá-la como um parâmetro:

Write-Output -- -InputObject
-InputObject

Esta é uma convenção especificada na especificação POSIX Shell and Utilities.

Token de análise de parada (--%)

O token stop-parsing (--%) impede que o PowerShell interprete cadeias de caracteres como comandos e expressões do PowerShell. Isso permite que essas cadeias de caracteres sejam passadas para outros programas para interpretação.

Coloque o token de análise de parada após o nome do programa e antes dos argumentos do programa que podem causar erros.

Neste exemplo, o Icacls comando usa o token stop-parsing.

icacls X:\VMS --% /grant Dom\HVAdmin:(CI)(OI)F

O PowerShell envia a seguinte cadeia de caracteres para Icacls.

X:\VMS /grant Dom\HVAdmin:(CI)(OI)F

Neste segundo exemplo, passamos a variável $HOME para o cmd.exe /c echo comando duas vezes.

cmd.exe /c echo $HOME --% $HOME

A saída mostra que a primeira instância de é interpretada $HOME pelo PowerShell para que o valor da variável seja passado para cmd. A segunda instância de vem após o token de análise de parada, portanto, ele é passado como uma cadeia de $HOME caracteres literal.

C:\Users\username  $HOME

Para obter mais informações sobre o token de análise de parada, consulte about_Parsing.

Confira também