Paraméterek átadása Windows PowerShell-szkriptnek

Befejezett

A szkripteket úgy konfigurálhatja, hogy a parancsmagokhoz hasonlóan fogadják el a paramétereket. Ez egy jó módszer a felhasználók számára a bemenet megadására, mivel összhangban van azzal, hogy a felhasználók hogyan adják meg a bemenetet a parancsmagokhoz. A konzisztencia megkönnyíti a felhasználók számára a megértést.

A paraméterértékeket tároló változók azonosításához param() blokkot kell használnia. A változónevek a zárójelek között vannak definiálva. A Param() blokkok használatának szintaxisa a következő:

Param(
   [string]$ComputerName ,
   [int]$EventID
)

A Param() blokkban definiált változónevek a paraméterek nevei is. Az előző példában a Param() blokkot tartalmazó szkript a -ComputerName és -EventID paraméterekkel rendelkezik, amelyek használhatók. Amikor megadja a szkript paraméterneveit, ugyanúgy használhatja a tabulátorkimenetet, mint a parancsmag paramétereit. A paraméterekkel rendelkező szkriptek futtatásának szintaxisa a következő:

.\GetEvent.ps1 -ComputerName LON-DC1 -EventID 5772

Feljegyzés

A paraméterek alapértelmezés szerint pozíciósak. Ha a paraméternevek nincsenek megadva, a paraméterértékek sorrendben lesznek átadva a paramétereknek. A szkript neve utáni első érték például az első paraméterváltozóba kerül.

Feljegyzés

Ha nem helyez param() blokkot a szkriptbe, akkor is továbbíthat adatokat a szkriptbe névtelen paraméterek használatával. A parancsprogram neve után megadott értékek a tömb szkriptjében $args érhetők el.

Változótípusok definiálása

Ajánlott eljárás változótípusok definiálása Param() blokkokban. A változótípusok megadásakor, ha egy felhasználó olyan értéket ad meg, amely nem konvertálható erre a változótípusra, hibaüzenet jelenik meg. Ez az egyik módszer a felhasználók által megadott adatok ellenőrzésére.

A kapcsolóváltozó típusát akkor használhatja egy paraméterhez, ha van olyan lehetőség, amelyet be- vagy kikapcsolni szeretne. A szkript futtatásakor a paraméter jelenléte a változót a következőre $trueállítja: . Ha a paraméter nem található, akkor a változó értéke .$false Például egy olyan szkriptben, amely általában bizonyos állapotadatokat jelenít meg a felhasználóknak, létrehozhat egy -quiet paramétert, amely letiltja az összes kimenetet a képernyőn.

A kapcsolóváltozókat általában előnyben részesítik a paraméterek logikai változóinál, mert a felhasználók szintaxisa egyszerűbb. A felhasználóknak nem kell értéket vagy $true értéket tartalmazniuk$false.

Alapértelmezett értékek

A paraméterek alapértelmezett értékeit a Param() blokkban határozhatja meg. A megadott alapértelmezett értékeket csak akkor használja a rendszer, ha a felhasználó nem ad meg értéket a paraméterhez. Ez biztosítja, hogy minden szükséges paraméter rendelkezik értékkel.

Az alábbi példa bemutatja, hogyan állíthat be alapértelmezett értéket:

Param(
   [string]$ComputerName = "LON-DC1"
)

Felhasználói bevitel kérése

Akkor is kérheti a bemenetet, ha a felhasználó nem ad meg paraméterértéket. Ez biztosítja, hogy a felhasználó értéket adjon meg egy paraméterhez, ha nincs meghatározható logikai alapértelmezett érték.

Az alábbi példa bemutatja, hogyan kérheti a felhasználóktól a bemenetet:

Param(
   [int]$EventID = Read-Host "Enter event ID"
)

Feljegyzés

A paraméterek további speciális beállításait konfigurálhatja egy szkriptben, például kötelezővé teheti a paramétert a Paraméter() attribútum használatával a Param() blokkban.

További olvasás: A Parameter() attribútummal kapcsolatos további információkért tekintse meg a about_Functions_Advanced_Parameters.