Partilhar via


about_Special_Characters

Breve descrição

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 fuga 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 caractere de fuga.

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

O PowerShell reconhece estas sequências de escape:

Sequence Description
`0 Nulo
`a Alerta
`b Espaço traseiro
`e Escape (adicionado no PowerShell 6)
`f Feed de formulários
`n Nova linha
`r Retorno de carro
`t Separador horizontal
`u{x} Sequência de escape Unicode (adicionada ao PowerShell 6)
`v Separador 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:

Sequence Description
-- Tratar os valores restantes como argumentos e não parâmetros
--% Pare de analisar qualquer coisa que se siga
~ Til

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 terminação 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 sonoro 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"}

Espaço traseiro ('b)

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

O exemplo escreve 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)

Nota

Esse caractere especial foi adicionado no PowerShell 6.0.

O caractere 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 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, consulte o artigo sobre o código de escape ANSI na Wikipédia.

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

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

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

O caractere de alimentação de formulário (`f) é uma instrução de impressão que ejeta a página atual e continua a impressão na página seguinte. O caractere de alimentação 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 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 `r do caractere não é excluído, ele é substituído.

I want this text instead written.

Separador horizontal ('t)

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

Nota

Esse caractere especial foi adicionado no PowerShell 6.0.

A sequência de escape Unicode (`u{x}) permite especificar qualquer caractere Unicode pela representação hexadecimal de seu ponto de código. Isso inclui caracteres Unicode acima do Plano Multilíngüe 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 o símbolo de seta para cima (↕).

"`u{2195}"

Separador 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 processa 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 da 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 o seguem devem ser passados em sua forma real, como se aspas duplas fossem colocadas em torno 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 do é 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.

Til (~)

O caractere til (~) tem um significado especial no PowerShell. Quando é usado com comandos do PowerShell no início de um caminho, o PowerShell expande o caractere til para o diretório base do usuário. Se você usar o caractere til em qualquer outro lugar em um caminho, ele será tratado como um caractere literal.

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

Consulte também