27Jul
Kai mes einame nuo paprastų komandų paleidimo ir perkelkime į rašmenis pilnus scenarijus, reikės laikinos duomenų saugojimo vietos. Tai yra čia, kur įvyksta kintamieji.
Būtinai perskaitykite ankstesnius serijos straipsnius:
- Sužinokite, kaip automatizuoti "Windows" su "PowerShell"
- . Mokymasis naudoti "PowerShell" "PowerShell"
- kompiliacijas. Mokymasis naudoti objektus "PowerShell"
- mokymosi formatavimas, filtravimas ir palyginimasPowerShell
- Sužinokite, kaip naudoti "Remoting" "PowerShell"
- naudojant "PowerShell", norėdami gauti informacijos apie kompiuterį
- "Work with Collections" "PowerShell"
. Visą savaitę palaikykite ryšį su likusia serija.
kintamieji
Dauguma programavimo kalbų leidžia naudoti kintamuosius, kurie yra tiesiog konteineriai, kuriuose yra verčių.Be "PowerShell", mes taip pat turime kintamuosius ir juos labai lengva naudoti.Štai kaip sukurti kintamąjį, pavadintą "FirstName", ir suteikite jam reikšmę "Taylor".
$ FirstName = "Taylor"
Pirmas dalykas, kurį dauguma žmonių, atrodo, klausia, kodėl mes dedame dolerio ženklą prieš kintamųjų pavadinimą, ir tai iš tikrųjų yra labai geras klausimas. Tikrai dolerio ženklas yra tik šiek tiek užuominą, kad mes norėtume pasiekti kintamojo turinį( pagalvokite, kas yra konteinerio viduje), o ne pats konteineris."PowerShell" kintamųjų pavadinimuose nėra dolerio ženklo, o tai reiškia, kad pirmiau pateiktame pavyzdyje kintamųjų vardas iš tikrųjų yra "Vardas".
"PowerShell" galite pamatyti visus kintamuosius, kuriuos sukūrėte kintamajame "PSDrive".
gci kintamasis:
. Tai reiškia, kad jūs bet kada galite ištrinti kintamąjį iš lukšto:
Pašalinti elemento kintamąjį: \ FirstName
kintamuosiuose neturi būti vieno objekto;jūs galite taip pat lengvai išsaugoti keletą objektų.Pavyzdžiui, jei norite išsaugoti kintamojo veikiančių procesų sąrašą, galite tiesiog priskirti jį "Get-Process" išėjimui.
$ Proc = Get-Process
Tai yra apgaulingas supratimas, kad pirmą kartą visada įvertinama lygiaverčio ženklo dešinė pusė.Tai reiškia, kad jūs galite turėti visą dujotiekį dešinėje, jei norite.
$ CPUHogs = Get-Process |Rūšiuoti CPU -Descending |select -First 3
Kintamasis CPUHogs dabar bus trys vykdomi procesai, naudojant daugumą procesoriaus.
Kai turite kintamąjį, kuriame yra objektų rinkinys, yra keletas dalykų, kuriuos reikia žinoti. Pavyzdžiui, skambinant kintamojo metodui, jis bus vadinamas kiekvienam kolekcijos objektui.
$ CPUHogs. Kill()
Kas nužudys visus tris procesus kolekcijoje. Jei norite pasiekti kintamojo vieną objektą, jį reikia vertinti kaip masyvą.
$ CPUHogs [0]
Tai padarys pirmąjį kolekcijos objektą.
Nepamirškite!"PowerShell" kintamieji
yra pagal nutylėjimą silpnai įvedami, tai reiškia, kad jie gali būti bet kokio tipo duomenys, tai atrodo, kad "PowerShell" visada žiūri į naujus klientus!
$ a = 10
$ b = '20'
Taigi turime du kintamuosius, vienas yra eilutės ir kitas sveikasis skaičius. Taigi, kas atsitiks, jei pridėsite juos?
$ a + $ b = 30
Nors
$ b + $ a = 2010
Pirmajame pavyzdyje pirmasis operantas yra sveikasis skaičius, $ a, taigi PowerShell mano, kad taijūs bandote daryti matematiką ir todėl bando bet kuriuos kitus operandus paversti sveikais skaičiais. Tačiau antrojo pavyzdžio pirmasis operandas yra eilutė, taigi PowerShell tiesiog konvertuoja likusius operandus į eilutes ir sujungia juos. Patobulinti scenarijai užkerta tokio tipo "Gothcha", kintant tokį kintamąjį kaip jie tikisi.
[int] $ Number = 5
[int] $ Number = '5'
Pirmiau pateiktas abu rezultatas bus Numeris kintamasis, turintis sveikuosius objektus su reikšme 5.
įvestis ir išvestis
Kadangi PowerShell skirtas automatizuoti dalykus, jūs ketinate nenorėti paskatinti vartotojų informacijos, kur tik įmanoma. Su tuo pasakius, bus laikas, kai to negalėsite išvengti, ir tuo metu mes turime "Read-Host" cmdlet. Naudojimas yra tikrai paprastas:
$ FirstName = Read-Host -Prompt "Įveskite savo vardą"
Nepriklausomai nuo to, ką jūs įveskite, bus išsaugotas kintamojoje.
Rašymo išvestis taip pat paprasta naudojant "Write-Output" cmdlet.
Write-Out "How-To Geek Rocks!"
Prisijunkite prie mūsų rytoj, kur susiesime viską, ką sužinojome kartu!