Delen via


Over het parseren

KORTE BESCHRIJVING

Hierin wordt beschreven hoe Power shell opdrachten parseert.

LANGE BESCHRIJVING

Wanneer u een opdracht bij de opdracht prompt invoert, wordt de opdracht tekst door Power shell in een reeks segmenten met de naam tokens weer gegeven en wordt vervolgens bepaald hoe elk token moet worden geïnterpreteerd.

Als u bijvoorbeeld het volgende typt:

Write-host Book

Power shell onderbreekt de volgende opdracht in twee tokens, ' write-host ' en ' Book ', en interpreteert elk token onafhankelijk van elkaar.

Bij het verwerken van een opdracht werkt de Power shell-parser in de expressie modus of in de argument modus:

  • In de expressie modus moeten teken reeks waarden tussen aanhalings tekens staan. Getallen die niet tussen aanhalings tekens staan, worden beschouwd als numerieke waarden (in plaats van als een reeks tekens).

  • In de argument modus wordt elke waarde beschouwd als een uitbreid bare teken reeks, tenzij deze begint met een van de volgende speciale tekens: dollar teken ( $ ), apen staartje (@), enkel aanhalings teken ( ' ), dubbele aanhalings tekens () " of een haakje openen ( ( ).

Als deze wordt voorafgegaan door een van deze tekens, wordt de waarde behandeld als een waarde-expressie.

De volgende tabel bevat enkele voor beelden van opdrachten die worden verwerkt in de expressie modus en de argument modus en de resultaten die door deze opdrachten worden geproduceerd.

Voorbeeld Modus Resultaat
2 + 2 Expressie 4 (geheel getal)
Write-output 2 + 2 Argument "2 + 2" (teken reeks)
Write-output (2 + 2) Expressie 4 (geheel getal)
$a = 2 + 2 Expressie $a = 4 (geheel getal)
$A voor Write-output Expressie 4 (geheel getal)
Write-output $a/H Argument "4/H" (teken reeks)

Elk token kan worden geïnterpreteerd als een soort object type, zoals Boole of teken reeks. Power shell probeert het object type te bepalen op basis van de expressie. Het object type is afhankelijk van het type para meter dat een opdracht verwacht en of Power shell weet hoe het argument moet worden geconverteerd naar het juiste type. In de volgende tabel ziet u een aantal voor beelden van de typen die zijn toegewezen aan waarden die door de expressies worden geretourneerd.

Voorbeeld Modus Resultaat
Write-output! 1 Argument voor "! 1" (teken reeks)
Write-output (! 1) expressie False (Boole-waarde)
Write-output (2) expressie 2 (geheel getal)

Het stop-parserings symbool (--%), geïntroduceerd in Power Shell 3,0, geeft Power shell de opdracht om de invoer niet te interpreteren als Power shell-opdrachten of-expressies.

Wanneer u een uitvoerbaar programma aanroept in Power shell, plaatst u het symbool voor het stoppen van parseren voor de programma argumenten. Deze techniek is veel eenvoudiger dan het gebruik van escape tekens om te voor komen dat er geen misinterpretatie is.

Wanneer er een symbool voor het stoppen van het parseren wordt aangetroffen, behandelt Power shell de resterende tekens in de regel als een letterlijke waarde. De enige interpretatie die wordt uitgevoerd, is het vervangen van waarden voor omgevings variabelen die gebruikmaken van de standaard Windows-notatie, zoals% USERPROFILE%.

Het stop-parserings symbool is alleen geldig tot de volgende nieuwe regel of een volgend pijp lijn teken. U kunt geen voortzettings teken (') gebruiken om het effect uit te breiden of een opdracht scheidings teken te gebruiken (;) om het effect te beëindigen.

Met de volgende opdracht wordt bijvoorbeeld het programma icacls aangeroepen.

icacls X:\VMS /grant Dom\HVAdmin:(CI)(OI)F

Als u deze opdracht wilt uitvoeren in Power Shell 2,0, moet u escape tekens gebruiken om te voor komen dat Power shell de haakjes interpreteert.

icacls X:\VMS /grant Dom\HVAdmin:`(CI`)`(OI`)F

Vanaf Power Shell 3,0 kunt u het symbool voor stoppen en parseren gebruiken.

icacls X:\VMS --% /grant Dom\HVAdmin:(CI)(OI)F

Power shell verzendt de volgende opdracht reeks naar het icacls-programma:

X:\VMS/Grant Dom\HVAdmin: (CI) (OI) F

ZIE OOK

about_Command_Syntax