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 os comandos.
DESCRIÇÃO LONGA
Quando você insere um comando no prompt de comando, o PowerShell quebra o texto do comando em uma série de segmentos chamados "tokens" e, em seguida, determina como interpretar cada "token".
Por exemplo, se você digitar:
Gravar-catálogo de hosts
O PowerShell divide o seguinte comando 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 ser contidos 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 (@), aspa simples ( ' ), aspas duplas ( " ) ou um parêntese de abertura ( ( ).
Se for 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 | Mode | Result |
|---|---|---|
| 2 + 2 | Expression | 4 (inteiro) |
| Write-Output 2 + 2 | Argumento | "2 + 2" (cadeia de caracteres) |
| Write-Output (2 + 2) | Expression | 4 (inteiro) |
| $a = 2 + 2 | Expression | $a = 4 (inteiro) |
| $A Write-Output | Expression | 4 (inteiro) |
| $A de gravação/saída/H | Argumento | "4/H" (cadeia de caracteres) |
Cada token pode ser interpretado como um tipo de objeto, como booliano ou cadeia de caracteres. O PowerShell tenta determinar o tipo de objeto a partir da expressão. O tipo de objeto depende do tipo de parâmetro esperado por um comando e se o PowerShell sabe como converter o argumento para o tipo correto. A tabela a seguir mostra vários exemplos dos tipos atribuídos aos valores retornados pelas expressões.
| Exemplo | Mode | Result |
|---|---|---|
| Write-Output! 1 | argumento | "! 1" (cadeia de caracteres) |
| Write-Output (! 1) | expressão | Falso (booliano) |
| Write-Output (2) | expressão | 2 (inteiro) |
O símbolo de análise de parada (--%), introduzido no PowerShell 3,0, direciona o PowerShell para evitar a interpretação da entrada como comandos ou expressões do PowerShell.
Ao chamar um programa executável no PowerShell, coloque o símbolo de interrupção de análise antes dos argumentos do programa. Essa técnica é muito mais fácil do que usar caracteres de escape para evitar a interpretação indiferente.
Quando ele encontra um símbolo de análise de parada, o PowerShell trata os caracteres restantes na linha como um literal. A única interpretação que ele executa é substituir valores de variáveis de ambiente que usam notação padrão do Windows, como% USERPROFILE%.
O símbolo de interrupção de análise entra em vigor somente até o próximo caractere de nova linha ou 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 incorretamente 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 interrupção 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