Utilizarea domeniului variabil în scripturile Windows PowerShell
Intuitiv, ați presupune că variabila numită $computer pe care ați setat-o într-o funcție ar putea fi accesată în script atunci când funcția este completă. Cu toate acestea, nu este cazul. Variabilele au un domeniu de aplicare specific și sunt limitate în modul în care interacționează între domenii.
Următorul tabel descrie cele trei domenii de aplicare și modul în care acestea afectează utilizarea variabilelor.
Tabelul 1: Domenii de aplicare
| Aplicare | Descriere |
|---|---|
| Global | Domeniul global este pentru solicitarea Windows PowerShell. Variabilele setate la promptul Windows PowerShell pot fi revizuite în toate scripturile pornite la promptul Windows PowerShell. Variabilele create la o solicitare Windows PowerShell nu există în alte solicitări Windows PowerShell sau în instanțele Windows PowerShell Integrated Scripting Environment (ISE). |
| Script | Domeniul de aplicare al scriptului este pentru un singur script. Variabilele setate într-un script pot fi revizuite de toate funcțiile din acel script. Dacă setați o valoare de variabilă în domeniul de aplicare a scriptului care există deja în domeniul global, se creează o nouă variabilă în domeniul de aplicare. Există apoi două variabile cu același nume în două domenii separate. În acest moment, când revizuiți valoarea variabilei din script, este returnată valoarea variabilei din domeniul scriptului. |
| Funcţie | Domeniul de aplicare al funcției este pentru o singură funcție. Variabilele setate într-o funcție nu sunt partajate cu alte funcții sau cu scriptul. Dacă setați o valoare variabilă în domeniul de aplicare a funcției care există deja în domeniul global sau script, se creează o nouă variabilă în domeniul de aplicare al funcției. Apoi, există două variabile cu același nume în două domenii separate. |
Notă
Pentru a evita confuziile, este o practică recomandată să evitați utilizarea acelorași nume de variabile în domenii diferite.
Pe lângă revizuirea unei variabile într-un domeniu de aplicare de nivel superior, puteți modifica și acea variabilă făcând referire în mod specific la domeniul de aplicare al variabilei atunci când o modificați. Pentru a modifica o variabilă de domeniu de script dintr-o funcție, utilizați următoarea sintaxă:
$script:var = "Modified from function"
Este o practică recomandată să evitați modificarea variabilelor între domenii, deoarece acest lucru poate cauza confuzie. În schimb, setați variabila de domeniu de script egală cu ieșirea funcției. Dacă datele din funcție sunt într-o variabilă, puteți utiliza Return() pentru a le transmite înapoi scriptului.
Următorul este un exemplu de utilizare a Return() la sfârșitul unei funcții pentru a transmite o valoare variabilă înapoi la domeniul scriptului:
Return($users)
Notă
Utilizarea Return() într-o funcție adaugă datele specificate la conducta de date returnate, dar nu înlocuiește datele existente în conductă. Ca parte a dezvoltării scriptului, trebuie să verificați exact ce date sunt returnate de o funcție.