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 de acento grave, conhecido como acento grave (ASCII 96), e diferenciam maiúsculas de minúsculas. O caractere de acento grave também pode ser chamado de caractere de escape.
As sequências de escape só são interpretadas quando contidas em cadeias de caracteres ("
) entre aspas duplas.
O PowerShell reconhece essas 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 no 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 |
---|---|
-- |
Trate os valores restantes como argumentos, não como parâmetros |
--% |
Pare de analisar qualquer coisa que se segue |
~ |
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 à $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 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, escreve um espaço seguido da palavra out.
"backup`b`b out"
back out
Fuga ('e)
Observação
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 dar suporte a sequências de terminais virtuais. 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 do formulário ('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 imprimir na próxima página. O caractere de alimentação de formulário afeta apenas documentos impressos. Não afeta a saída da tela.
Nova linha ('n)
O caractere de nova linha (`n
) insere uma quebra de linha imediatamente após o caractere.
Este exemplo mostra como usar o caractere de nova 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 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 é 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 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})
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 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 hexadecimais. O valor hexadecimal máximo para a sequência é 10FFFF
.
Este exemplo gera o símbolo de seta para cima e 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 de acento grave 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 ao redor deles. Por exemplo, usar --
u pode gerar a string -InputObject
sem usar aspas ou interpretá-la como um parâmetro:
Write-Output -- -InputObject
-InputObject
Essa é uma convenção especificada na especificação POSIX Shell and Utilities.
Parar de analisar o token (--%)
O token stop-parsing (--%
) impede que o PowerShell interprete cadeias de caracteres como comandos e expressões do PowerShell. Isso permite que essas strings 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 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 $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 ele é 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.