Obavezno pročitajte prethodne članke serije:
- Saznajte kako automatizirati sustav Windows pomoću programa PowerShell
- Učenje pomoću Cmdletsa u PowerShellu
- Učenje kako koristiti objekte u PowerShellu
- Oblikovanje učenja, filtriranje i uspoređivanje u PowerShellu
- Saznajte kako koristiti Remoting u PowerShellu
- Upotreba programa PowerShell za dobivanje informacija o računalu
- Rad s zbirkama u PowerShellu
I ostanite u tijeku cijele serije cijeli tjedan.
Varijable
Većina programskih jezika dopušta korištenje varijabli, koje su jednostavno spremnici koji imaju vrijednosti. U PowerShellu imamo i varijable i vrlo su jednostavne za upotrebu. Evo kako stvoriti varijablu pod nazivom "FirstName" i dati mu vrijednost "Taylor".
$FirstName = “Taylor”
Prvo što većina ljudi čini da je pitanje zašto smo stavili dolar znak ispred imena varijable, i to je zapravo vrlo dobro pitanje. Stvarno, znak dolara samo je mali nagovještaj ljuske da želimo pristupiti sadržaju varijable (mislim što je unutar kontejnera), a ne sam kontejner. U PowerShell-u, nazivi varijabli ne uključuju znak dolara, što znači da je u gornjem primjeru naziv varijable zapravo "FirstName".
U PowerShellu možete vidjeti sve varijable koje ste stvorili u varijabli PSDrive.
gci variable:
Remove-Item Variable:FirstName
Varijable ne moraju sadržavati niti jedan objekt; možete jednostavno pohraniti više objekata u varijablu. Na primjer, ako želite pohraniti popis pokretnih procesa u varijabli, možete je jednostavno dodijeliti izlazu Get-Processa.
$Proc = Get-Process
Izigrati da to razumijemo je da zapamtimo da desna strana znaka jednakosti uvijek prvo procjenjuje. To znači da možete imati cijeli cjevovod na desnoj strani ako želite.
$CPUHogs = Get-Process | Sort CPU -Descending | select -First 3
Varijabla CPUHogsa sada će sadržavati tri procesa koji se izvode pomoću najviše CPU-a.
$CPUHogs.Kill()
Što bi ubila sva tri procesa u zbirci. Ako želite pristupiti jednom objektu u varijabli, trebate ga tretirati kao niz.
$CPUHogs[0]
To će vam dati prvi objekt u zbirci.
Nemojte se uhvatiti!
Varijable u PowerShellu slabo su tipizirane prema zadanom značenju mogu sadržavati bilo kakve podatke, to izgleda kao da ulove nove ljude u PowerShell cijelo vrijeme!
$a = 10
$b = ‘20’
Dakle, imamo dvije varijable, jedan sadrži niz, a drugi cijeli broj. Pa što će se dogoditi ako ih dodate? To zapravo ovisi o tome kojim ćete redoslijedom dodati.
$a + $b = 30
Dok
$b + $a = 2010
U prvom primjeru, prvi operand je cijeli broj, $, pa PowerShell misli da misli da pokušavate napraviti matematiku i stoga pokušavate pretvoriti i druge operande u cijele brojeve. Međutim, u drugom primjeru prvi operand je niz, tako da PowerShell samo pretvara ostatak operanda na žice i povezuje ih. Napredniji scenaristi spriječavaju ovu vrstu gotke tako što će varijablu baciti na vrstu koju očekuju.
[int]$Number = 5 [int]$Number = ‘5’
Gore će rezultirati i varijabla broja koja sadrži cijeli objekt s vrijednosti od 5.
Ulaz i izlaz
Budući da je PowerShell namijenjen automatiziranju stvari, željet ćete izbjeći da korisnike potiču kad god je to moguće. Uz to, bit će vremena kad ga ne možete izbjeći, a za to vrijeme imamo cmdlet Read-Host. Korištenje je stvarno jednostavan:
$FirstName = Read-Host –Prompt ‘Enter your first name’
Write-Output “How-To Geek Rocks!”