Geek School Learning PowerShell Variabler, Input og Output
Når vi beveger oss fra bare å kjøre kommandoer og går inn i å skrive fullblåste skript, trenger du et midlertidig sted å lagre data. Det er her variabler kommer inn.
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å informasjon om datamaskinen
- 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 i det ovennevnte eksemplet egentlig er "FirstName".
I PowerShell kan du se alle variablene du har opprettet i variabelen PSDrive.
gci variabel:
Som betyr at du kan slette en variabel fra skallet når som helst:
Fjern-elementvariabel: \ Fornavn
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 er vurdert først. Dette betyr at du kan ha en hel rørledning på høyre side hvis du vil.
$ CPUHogs = Get-Process | Sorter CPU-Nedbryting | velg -First 3
CPUHogs-variabelen vil nå inneholde de tre kjørende prosessene som bruker mest CPU.
Når du har en variabel som holder en samling objekter, er det noen ting å være klar over. Hvis du for eksempel kalder en metode på variabelen, vil det bli kalt på hver gjenstand i samlingen.
$ 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] $ tall = 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 der det er mulig. Med det sagt vil det være tider hvor du ikke kan unngå det, og for de gangene har vi Read-Host-cmdlet. Å bruke det er veldig enkelt:
$ FirstName = Les-Host -Prompt 'Skriv inn ditt fornavn'
Uansett hva du skriver inn, blir du deretter lagret i variabelen.
Skriveutgang er like lett med cmdlet Skriv-utgang.
Skriv-utgang "How-To Geek Rocks!"
Bli med oss i morgen hvor vi knytter alt vi har lært sammen!