Husk å lese de forrige artiklene i serien:
- Lær hvordan du automatiserer Windows med PowerShell
- Lære å bruke Cmdlets i PowerShell
- Lære hvordan du bruker objekter i PowerShell
- Læreformatering, filtrering og sammenligning i PowerShell
- Lær å bruke Remoting i PowerShell
- Bruke PowerShell til å få datamaskininformasjon
- Arbeider med samlinger i PowerShell
Og hold deg innstilt for resten av serien hele uken.
variabler
De fleste programmeringsspråk tillater bruk av variabler, som bare er beholdere som holder verdier. I PowerShell har vi også variabler, og de er veldig enkle å bruke. Slik lager du en variabel som heter "FirstName" og gir den verdien "Taylor".
$FirstName = “Taylor”
Det første de fleste synes å spørre er hvorfor vi legger et dollarskilt foran variablene, og det er faktisk et veldig godt spørsmål. Virkelig, dollartegnet er bare et lite hint på skallet som vi ønsker å få tilgang til innholdet i variabelen (tenk hva som er inne i beholderen) og ikke selve beholderen. I PowerShell inkluderer variable navn ikke dollarskiltet, noe som betyr at variabelenavnet egentlig er "FirstName" i eksemplet ovenfor.
I PowerShell kan du se alle variablene du har opprettet i variabelen PSDrive.
gci variable:
Remove-Item Variable:FirstName
Variabler trenger heller ikke å inneholde et enkelt objekt; Du kan like enkelt lagre flere objekter i en variabel. Hvis du for eksempel vil lagre en liste over kjørende prosesser i en variabel, kan du bare tilordne den utgangen av Get-Process.
$Proc = Get-Process
Trikset for å forstå dette er å huske at høyre side av like-tegnet alltid blir vurdert først. Dette betyr at du kan ha en hel rørledning på høyre side hvis du vil.
$CPUHogs = Get-Process | Sort CPU -Descending | select -First 3
CPUHogs-variabelen vil nå inneholde de tre kjørende prosessene som bruker mest CPU.
$CPUHogs.Kill()
Som ville drepe alle tre prosessene i samlingen. Hvis du vil ha tilgang til et enkelt objekt i variabelen, må du behandle det som en matrise.
$CPUHogs[0]
Å gjøre det vil gi deg det første objektet i samlingen.
Ikke bli fanget!
Variabler i PowerShell er svakt skrevet som standard, noe som betyr at de kan inneholde noen form for data, dette ser ut til å få nye komme til PowerShell hele tiden!
$a = 10
$b = ‘20’
Så vi har to variabler, en inneholder en streng og den andre et heltall. Så hva skjer hvis du legger til dem? Det avhenger faktisk av hvilken rekkefølge du legger til dem.
$a + $b = 30
Samtidig som
$b + $a = 2010
I det første eksemplet er den første operand et heltall, $ a, så PowerShell mener at du prøver å gjøre matte og derfor prøver å konvertere noen andre operander til heltall også. I det andre eksemplet er den første operand en streng, så PowerShell konverterer bare resten av operandene til strenger og sammenkaller dem. Mer avanserte scripters forhindrer denne typen gotcha ved å kaste variabelen til typen de forventer.
[int]$Number = 5 [int]$Number = ‘5’
Ovennevnte vil begge resultere i tallvariabelen som inneholder et heltallobjekt med en verdi på 5.
Input og Output
Fordi PowerShell er ment å automatisere ting, vil du unngå å spørre brukerne om informasjon når det er mulig. Med det sagt vil det være tider hvor du ikke kan unngå det, og for de tidene har vi Read-Host-cmdlet. Å bruke det er veldig enkelt:
$FirstName = Read-Host –Prompt ‘Enter your first name’
Write-Output “How-To Geek Rocks!”