Megosztás a következőn keresztül:


Az elemzésről

RÖVID LEÍRÁS

Ismerteti, hogyan elemzi a PowerShell a parancsokat.

HOSSZÚ LEÍRÁS

Amikor beír egy parancsot a parancssorba, a PowerShell a parancs szövegét "jogkivonatoknak" nevezett szegmensek sorozatára bontja, majd meghatározza, hogyan kell értelmezni az egyes "jogkivonatokat".

Ha például a következőt írja be:

Write-Host könyv

A PowerShell a következő parancsot két jogkivonatra bontja: "Write-Host" és "book", és egymástól függetlenül értelmezi az egyes jogkivonatokat.

Parancs feldolgozásakor a PowerShell-elemző kifejezés vagy argumentum módban működik:

  • Kifejezés módban a karakterlánc-értékeket idézőjelek között kell tartalmazni. Az idézőjelek közé nem zárt számokat a rendszer numerikus értékként (nem pedig karaktersorozatként) kezeli.

  • Argumentum módban a rendszer minden értéket kibontható karakterláncként kezel, kivéve, ha a következő speciális karakterek valamelyikével kezdődik: dollárjel ($), kukac jel (@), szimpla idézőjel ('), dupla idézőjel (") vagy nyitó zárójel (().

Ha ezen karakterek valamelyike előzi meg, az értéket értékkifejezésként kezeli a rendszer.

Az alábbi táblázat számos példát mutat be a kifejezési és argumentummódban feldolgozott parancsokra, valamint a parancsok által előállított eredményekre.

példa Üzemmód Eredmény
2+2 Kifejezés 4 (egész szám)
Write-Output 2+2 érvelés 2+2
Write-Output (2+2) Kifejezés 4 (egész szám)
$a = 2+2 Kifejezés $a = 4 (egész szám)
Write-Output $a Kifejezés 4 (egész szám)
Write-Output $a/H érvelés "4/H" (húr)

Minden jogkivonat értelmezhető valamilyen objektumtípusként, például logikai értékként vagy sztringként. A PowerShell megkísérli meghatározni a kifejezés objektumtípusát. Az objektum típusa attól függ, hogy a parancs milyen típusú paramétert vár el, és hogy a PowerShell tudja-e, hogyan konvertálja az argumentumot a megfelelő típusra. Az alábbi táblázat több példát mutat be a kifejezések által visszaadott értékekhez rendelt típusokra.

példa Üzemmód Eredmény
Write-Output !1 argumentum "!1" (sztring)
Write-Output (!1) kifejezés Hamis (logikai érték)
Write-Output (2) kifejezés 2 (egész szám)

A PowerShell 3.0-ban bevezetett leállítási elemzési szimbólum (--%) arra utasítja a PowerShellt, hogy tartózkodjon a bemenet PowerShell-parancsként vagy -kifejezésként való értelmezésétől.

Amikor végrehajtható programot hív meg a PowerShellben, helyezze a stop-arsing szimbólumot a programargumentumok elé. Ez a technika sokkal egyszerűbb, mint a menekülési karakterek használata a félreértelmezés megakadályozása érdekében.

Amikor stop-parsing szimbólummal találkozik, a PowerShell a sor többi karakterét konstansként kezeli. Az egyetlen értelmezés, amelyet végrehajt, az, hogy a szabványos Windows-jelölést használó környezeti változók értékeivel helyettesíti, mint például a %USERPROFILE%.

A stop-elemzés szimbólum csak a következő újsorig vagy csővezeték-karakterig érvényes. Nem használhat folytatási karaktert (') a hatás kiterjesztésére, és nem használhat parancshatárolót (;) a hatás megszüntetésére.

A következő parancs például meghívja az Icacls programot.

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

A parancs PowerShell 2.0-s futtatásához menekülő karaktereket kell használnia ahhoz, hogy a PowerShell ne értelmezze félre a zárójeleket.

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

A PowerShell 3.0-tól kezdődően használhatja a leállítási elemzési szimbólumot.

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

A PowerShell a következő parancssztringet küldi el az Icacls programnak:

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

LÁSD MÉG

a_Parancs_Szintaxisról