Paraméterek átadása Windows PowerShell-szkriptnek
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.