Változó hatókör használata Windows PowerShell-szkriptekben

Befejezett

Intuitív módon feltételezzük, hogy a függvényben beállított változó $computer a függvény befejezésekor elérhető a szkriptben. Ez azonban nem így van. A változók egy adott hatókörrel rendelkeznek, és korlátozottak a hatókörök közötti interakcióban.

Az alábbi táblázat a három hatókört ismerteti, és azt, hogy ezek hogyan befolyásolják a változók használatát.

1. táblázat: Hatókörök

Hatókör Leírás
Globális A globális hatókör a Windows PowerShell-parancssorra terjed ki. A Windows PowerShell-parancssorban beállított változók az adott Windows PowerShell-parancssorban indított összes szkriptben áttekinthetők. A Windows PowerShell-parancssorban létrehozott változók nem léteznek más Windows PowerShell-parancssorokban vagy a Windows PowerShell integrált szkriptelési környezet (ISE) példányaiban.
Szkript A szkript hatóköre egyetlen szkriptre érvényes. A szkripten belül beállított változókat a szkript összes függvénye áttekintheti. Ha olyan változóértéket állít be a szkript hatókörében, amely már létezik a globális hatókörben, egy új változó jön létre a szkript hatókörében. Ezután két azonos nevű változó található két külön hatókörben. Ezen a ponton, amikor áttekinti a változó értékét a szkriptben, a szkript hatókörében lévő változó értéke lesz visszaadva.
Függvény A függvény hatóköre egyetlen függvényhez tartozik. A függvényen belül beállított változók nem lesznek megosztva más függvényekkel vagy szkripttel. Ha olyan változóértéket állít be a függvény hatókörében, amely már létezik a globális vagy a szkript hatókörében, a függvény hatókörében létrejön egy új változó. Ezután két azonos nevű változó található két külön hatókörben.

Feljegyzés

A félreértések elkerülése érdekében ajánlott elkerülni, hogy ugyanazokat a változóneveket különböző hatókörökben használják.

Amellett, hogy egy változót magasabb szintű hatókörben tekint át, a változót úgy is módosíthatja, hogy kifejezetten hivatkozik a változó hatókörére a módosításkor. Egy függvény szkripthatókör-változójának módosításához használja az alábbi szintaxist:

$script:var = "Modified from function"

Ajánlott elkerülni a változók hatókörök közötti módosítását, mert ez zavart okozhat. Ehelyett állítsa be a szkript hatókörváltozóját a függvény kimenetével egyenlőre. Ha a függvény adatai egy változóban találhatóak, a Return() használatával visszaadhatja azokat a szkriptnek.

Az alábbi példa egy függvény végén található Return() függvény használatával adja vissza a változó értékét a szkript hatókörének:

Return($users) 

Feljegyzés

A Return() függvény használata hozzáadja a megadott adatokat a visszaadott adatfolyamathoz, de nem helyettesíti a folyamatban lévő meglévő adatokat. A szkriptfejlesztés részeként ellenőriznie kell, hogy egy függvény pontosan mely adatokat adja vissza.