Compartilhar via


about_Special_Characters

Descrição curta

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 com aspas duplas (").

O PowerShell reconhece estas sequências de escape:

Seqüenciar Descrição
`0 Zero
`a Alerta
`b Backspace
`e Escape (adicionado ao PowerShell 6)
`f Feed de formulários
`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:

Seqüenciar Descrição
-- Tratar os valores restantes como argumentos e não parâmetros
--% Parar de analisar qualquer coisa a seguir
~ 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 encerramento 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 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 de backup e, em seguida, move o cursor para trás duas vezes. Em seguida, na nova posição, grava um espaço seguido pela palavra .

"backup`b`b out"
back out

Escape ('e)

Nota

Esse caractere especial foi adicionado ao 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 dar suporte a sequências de terminal virtual. Você pode verificar 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 o artigo de código de escape ANSI artigo 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

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 a impressão na próxima página. O caractere do feed de formulários 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 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 caractere `r não é 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})

Nota

Esse caractere especial foi adicionado ao 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 polegares para cima (`u{1F44D}) caractere. 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 seta para cima (↕).

"`u{2195}"

Guia vertical ('v)

O caractere de guia 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 feed 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 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.

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 que o comando continua na próxima linha. Para obter mais informações, consulte about_Parsing.

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

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

Write-Output -- -InputObject
-InputObject

Essa é uma convenção especificada na especificação de Shell e Utilitários POSIX.

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

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 parada de análise após o nome do programa e antes dos argumentos do programa que possam causar erros.

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

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

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 do $HOME vem após o token de parada de análise, portanto, ele é passado como uma cadeia de caracteres literal.

C:\Users\username  $HOME

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

Tilde (~)

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

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

Consulte também