Pe măsură ce ne mișcăm de la pur și simplu rularea comenzilor și trecem la scrierea de scripturi pline, veți avea nevoie de un loc temporar pentru stocarea datelor. Aici intră variabilele.
Asigurați-vă că citiți articolele anterioare din seria:
Și stați liniștit pentru restul seriei toată săptămâna.
Majoritatea limbajelor de programare permit utilizarea variabilelor, care sunt pur și simplu containere care dețin valori. În PowerShell, și noi avem variabile și sunt foarte ușor de utilizat. Iată cum să creați o variabilă numită "FirstName" și să îi dați valoarea "Taylor".
$ FirstName = "Taylor"
Primul lucru pe care majoritatea oamenilor par să îl întrebe este motivul pentru care am introdus un semn de dolar în fața numelui variabilelor și aceasta este de fapt o întrebare foarte bună. Într-adevăr, semnul dolarului este doar un indiciu al cochiliei că vrem să accesăm conținutul variabilei (gândiți-vă ce este în interiorul containerului) și nu containerul în sine. În PowerShell, numele variabilelor nu includ semnul dolar, ceea ce înseamnă că în exemplul de mai sus numele variabilelor este de fapt "FirstName".
În PowerShell, puteți vedea toate variabilele pe care le-ați creat în variabila PSDrive.
Variabila gci:
Ceea ce înseamnă că puteți șterge și o variabilă din shell în orice moment:
Eliminați variabila pentru element: \ FirstName
Variabilele nu trebuie să conțină nici un singur obiect; poți stoca la fel de ușor cu mai multe obiecte într-o variabilă. De exemplu, dacă doriți să stocați o listă de procese în execuție într-o variabilă, puteți să o atribuiți ieșirii procesului Get-Process.
$ Proc = Get-Process
Trucul pentru a înțelege acest lucru este să ne amintim că partea dreaptă a semnalului egal este întotdeauna evaluată mai întâi. Aceasta înseamnă că puteți avea o întreagă conductă pe partea dreaptă dacă doriți.
$ CPUHogs = Get-Process Sortați CPU -Descărcarea | selectați -Prima 3
Variabila CPUHogs va conține acum cele trei procese care rulează utilizând cele mai multe procesoare.
Când aveți o variabilă care deține o colecție de obiecte, există câteva lucruri de care să fiți conștienți. De exemplu, apelarea unei metode pe variabila va determina să fie apelată pe fiecare obiect din colecție.
$ CPUHogs.Kill ()
Care ar ucide toate cele trei procese din colecție. Dacă doriți să accesați un singur obiect în variabilă, trebuie să îl tratați ca un matrice.
$ CPUHogs [0]
A face acest lucru vă va da primul obiect din colecție.
Variabilele din PowerShell sunt tastate slab în mod implicit, ceea ce înseamnă că pot conține orice fel de date, acest lucru pare să captureze noi utilizatori la PowerShell tot timpul!
$ a = 10
$ b = '20'
Deci, avem două variabile, unul conține un șir și altul un număr întreg. Deci, ce se întâmplă dacă le adăugați? De fapt, depinde de ce ordine le adăugați.
$ a + $ b = 30
In timp ce
$ b + $ a = 2010
În primul exemplu, primul operand este un întreg, $ a, deci PowerShell crede că crede că încerci să faci matematică și, prin urmare, încearcă să convertești oricare alt operand în întregi. Cu toate acestea, în al doilea exemplu, primul operand este un șir, astfel încât PowerShell doar convertește restul operanților în șiruri de caractere și le conectează. Scriptorii mai avansați împiedică acest tip de cuprindere prin plasarea variabilei la tipul pe care îl așteaptă.
[int] $ Number = 5
[int] $ Number = '5'
Cele de mai sus vor conduce la variabila Număr care conține un obiect întreg cu o valoare de 5.
Deoarece PowerShell este destinat să automatizeze lucrurile, veți dori să evitați să îi solicitați utilizatorilor informații ori de câte ori este posibil. Cu asta am spus că vor exista momente în care nu puteți să le evitați și pentru acele vremuri avem cmdlet-ul Read-Host. Folosirea este foarte simplu:
$ FirstName = Read-Host -Prompt 'Introduceți-vă primul nume'
Orice introduceți va fi apoi salvat în variabilă.
Efectul de scriere este la fel de ușor cu cmdletul Write-Output.
Scrie-ieșire "How-To Geek Rocks!"
Alăturați-vă mâine unde ne legăm tot ce am învățat împreună!