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

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 personagem 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:

Sequência Descrição
`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:

Sequência Descrição
-- 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 $null, que armazena um valor de 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 de 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 .

"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 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 código de escape ANSI artigo na Wikipedia.

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 comando Write-Host.

"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 do caractere `r 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})

Observação

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 polegar para cima caractere (`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 da seta para cima símbolo (↕).

"`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 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 um console baseado 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 parada de análise (--%)

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 comando Icacls 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 comando cmd.exe /c echo duas vezes.

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

A saída mostra que a primeira instância do $HOME é interpretada pelo PowerShell para que o valor da variável seja passado para cmd. A segunda instância de $HOME vem após o token de análise de parada, portanto, ele é passado como uma cadeia de 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