TÓPICO
about_parsing
DESCRIÇÃO RESUMIDA
Descreve como o Windows PowerShell analisa comandos.
DESCRIÇÃO LONGA
Quando você insere um comando no prompt de comando, o Windows
PowerShell divide o texto do comando em uma série de segmentos
denominados tokens e, em seguida, determina como interpretar cada
um deles. Por exemplo, o Windows PowerShell divide o comando a
seguir em dois tokens, "Write-Host" e "book" e interpreta cada token
separadamente:
Write-Host book
Ao processar um comando, o analisador do Windows PowerShell opera
em modo de expressão ou em modo de argumento:
- No modo de expressão, os valores da string
devem ficar entre aspas. Os números que não ficam entre
aspas são considerados valores numéricos (em vez de uma série de
caracteres).
- No modo de argumento, cada valor é considerado como uma
string expansível a menos que comece com um dos
caracteres especiais a seguir: cifrão ($), arroba (@), aspas simples
('), aspas duplas (") ou um parêntese de abertura (().
Se for precedido de um desses caracteres, o valor será considerado 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 (integer)
Write-Output 2+2 Argumento "2+2" (string)
Write-Output (2+2) Expressão 4 (integer)
$a = 2+2 Expressão $a = 4 (integer)
Write-Output $a Expressão 4 (integer)
Write-Output $a/H Argumento "4/H" (string)
Cada token pode ser interpretado como algum tipo de objeto, como
Booleano ou string. O Windows PowerShell tenta
determinar o tipo de objeto a partir da expressão. O tipo de
objeto depende do tipo de parâmetro que um comando espera e se o
Windows PowerShell sabe como converter o argumento no tipo
correto. A tabela abaixo mostra vários exemplos dos tipos atribuídos a
valores retornados pelas expressões.
Exemplo Modo Resultado
------------------ ---------- ---------------
Write-Output !1 argumento "!1" (string)
Write-Output (!1) expressão False (Boolean)
Write-Output (2) expressão 2 (integer)
CONSULTE TAMBÉM
about_Command_Syntax