Geek School: Learning PowerShell Variabler, Input og Output

Innholdsfortegnelse:

Geek School: Learning PowerShell Variabler, Input og Output
Geek School: Learning PowerShell Variabler, Input og Output

Video: Geek School: Learning PowerShell Variabler, Input og Output

Video: Geek School: Learning PowerShell Variabler, Input og Output
Video: Windows 10 Docker Desktop for Windows: Explained - YouTube 2024, April
Anonim
Når vi beveger oss bort 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.
Når vi beveger oss bort 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å 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:

Som betyr at du kan slette en variabel fra skallet når som helst:
Som betyr at du kan slette en variabel fra skallet når som helst:

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.

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.
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.

Image
Image

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’

Uansett hva du skriver inn, blir det lagret i variabelen.
Uansett hva du skriver inn, blir det lagret i variabelen.
Skriveutgang er like enkelt med cmdlet Skriv-utgang.
Skriveutgang er like enkelt med cmdlet Skriv-utgang.

Write-Output “How-To Geek Rocks!”

Anbefalt: