Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
DESCRIÇÃO BREVE
Descreve como o PowerShell analisa comandos.
DESCRIÇÃO LONGA
Quando você insere um comando no prompt de comando, o PowerShell divide o texto do comando em uma série de segmentos chamados "tokens" e determina como interpretar cada "token".
Por exemplo, se você digitar:
Write-Host livro
O PowerShell divide o comando a seguir em dois tokens, "Write-Host" e "book", e interpreta cada token de forma independente.
Ao processar um comando, o analisador do PowerShell opera no modo de expressão ou no modo de argumento:
No modo de expressão, os valores de cadeia de caracteres devem estar entre aspas. Os números não colocados entre aspas são tratados como valores numéricos (em vez de uma série de caracteres).
No modo de argumento, cada valor é tratado como uma cadeia de caracteres expansível, a menos que comece com um dos seguintes caracteres especiais: cifrão ($), arroba (@), aspas simples ('), aspas duplas (") ou um parêntese de abertura (().
Se precedido por um desses caracteres, o valor será tratado como uma expressão de valor.
A tabela a seguir fornece vários exemplos de comandos processados no modo de expressão e no modo de argumento e os resultados produzidos por esses comandos.
| Exemplo | Modo | Resultado |
|---|---|---|
| 2+2 | Expressão | 4 (inteiro) |
| Write-Output 2+2 | Argumento | "2+2" (cadeia de caracteres) |
| Write-Output (2+2) | Expressão | 4 (inteiro) |
| $a = 2+2 | Expressão | $a = 4 (inteiro) |
| Write-Output $a | Expressão | 4 (inteiro) |
| Write-Output $a/H | Argumento | "4/H" (cadeia de caracteres) |
Cada token pode ser interpretado como algum tipo de objeto, como booleano ou string. O PowerShell tenta determinar o tipo de objeto da expressão. O tipo de objeto depende do tipo de parâmetro que um comando espera e se o PowerShell sabe como converter o argumento no tipo correto. A tabela a seguir mostra vários exemplos dos tipos atribuídos aos valores retornados pelas expressões.
| Exemplo | Modo | Resultado |
|---|---|---|
| Write-Output !1 | argumento | "!1" (cadeia de caracteres) |
| Write-Output (!1) | expressão | Falso (Booleano) |
| Write-Output (2) | expressão | 2 (inteiro) |
O símbolo de parada de análise (--%), introduzido no PowerShell 3.0, direciona o PowerShell a se abster de interpretar a entrada como comandos ou expressões do PowerShell.
Ao chamar um programa executável no PowerShell, coloque o símbolo de parada de análise antes dos argumentos do programa. Essa técnica é muito mais fácil do que usar caracteres de escape para evitar interpretações incorretas.
Quando o PowerShell encontra um símbolo de fim de análise, ele trata os caracteres restantes na linha como literais. A única interpretação que ele executa é substituir valores por variáveis de ambiente que usam notação padrão do Windows, como %USERPROFILE%.
O símbolo de parada de análise é efetivo somente até a próxima nova linha ou caractere de pipeline. Você não pode usar um caractere de continuação (') para estender seu efeito ou usar um delimitador de comando (;) para encerrar seu efeito.
Por exemplo, o comando a seguir chama o programa Icacls.
icacls X:\VMS /grant Dom\HVAdmin:(CI)(OI)F
Para executar esse comando no PowerShell 2.0, você deve usar caracteres de escape para impedir que o PowerShell interprete mal os parênteses.
icacls X:\VMS /grant Dom\HVAdmin:`(CI`)`(OI`)F
A partir do PowerShell 3.0, você pode usar o símbolo de parada de análise.
icacls X:\VMS --% /grant Dom\HVAdmin:(CI)(OI)F
O PowerShell envia a seguinte cadeia de caracteres de comando para o programa Icacls:
X:\VMS /grant Dom\HVAdmin:(CI)(OI)F