Share via


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 dá 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 chamado de caractere de escape.

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

O PowerShell reconhece essas sequências de escape:

Sequência Descrição
`0 Nulo
`a Alerta
`b Backspace
`e Escape
`f Avanço de formulário
`n Nova linha
`r Retorno de carro
`t Guia horizontal
`u{x} Sequência de escape Unicode
`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 tudo o 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 encerramento de registro. O caractere especial nulo não é equivalente à $null variável , que armazena 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 de backspace (`b) move o cursor para trás um caractere, mas não exclui nenhum caractere.

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

"backup`b`b out"
back out

Escape ('e)

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 e rolagem do cursor. O host do PowerShell deve dar suporte a sequências de terminal virtual. Você pode marcar o valor booliano de $Host.UI.SupportsVirtualTerminal para determinar se essas sequências ANSI têm suporte.

Para obter mais informações sobre sequências de escape ANSI, consulte ANSI_escape_code.

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

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

Feed 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 imprimindo na próxima página. O caractere de feed de formulário afeta apenas documentos impressos. Isso 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 de carro ('r)

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

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

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

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

I want this text instead written.

Guia horizontal (não)

O caractere de guia horizontal (`t) avança para a próxima parada de tabulação e continua gravando 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})

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 de polegar para cima (`u{1F44D}). A sequência de escape Unicode requer pelo menos um dígito hexadecimal e dá suporte a até seis dígitos hexadecimal. O valor hexadecimal máximo para a sequência é 10FFFF.

Este exemplo gera o símbolo de seta para cima (↕).

"`u{2195}"

Guia vertical ('v)

O caractere 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 nenhum espaçamento extra adicionado.

There is a vertical tab♂between the words.

O Terminal do Windows renderiza o caractere de guia 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 guia vertical avança para a próxima linha e grava a saída restante nesse ponto.

There is a vertical tab
                       between the words.

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

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

Write-Output -- -InputObject
-InputObject

Essa é uma convenção especificada na especificação shell e utilitários POSIX.

Token de análise de interrupção (--%)

O token de 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 stop-parsing após o nome do programa e antes dos argumentos do programa que possam causar erros.

Neste exemplo, o Icacls comando usa o token de análise de parada.

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

O PowerShell envia a cadeia de caracteres a seguir para Icacls.

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

Veja a seguir outro exemplo. A função showArgs gera os valores passados para ela. Neste exemplo, passamos a variável nomeada $HOME para a função duas vezes.

function showArgs {
  "`$args = " + ($args -join '|')
}

showArgs $HOME --% $HOME

Você pode ver na saída que, para o primeiro parâmetro, a variável $HOME é interpretada pelo PowerShell para que o valor da variável seja passado para a função. O segundo uso de $HOME vem após o token de análise de parada, portanto, a cadeia de caracteres "$HOME" é passada para a função sem interpretação.

$args = C:\Users\username|--%|$HOME

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

Confira também