Welcome to Our Website

Adam Automator (Norsk)

Skript kan ta avgjørelser. Hvordan? Ved hjelp av et konsept kalt betinget logikk. PowerShell if-setning og if/else-konstruksjoner er de vanligste måtene å definere betingelser.

Når du skriver PowerShell-skript, kan du gjøre det med en bestemt oppgave eller oppgaver i tankene. Men, en operasjon kan ha mer enn én mulig handling basert på én eller flere betingelser. Denne situasjonen er der PowerShell If-Else-komponentene kommer inn.,

I denne artikkelen, vil du lære hva PowerShell If-Else-komponentene er, å forstå dens syntaks og hvordan det fungerer. Du vil også lære fra de eksempler på noen av de forskjellige måtene du kan bruke PowerShell-Om-Annet å legge til betinget logikk håndtering i dine skript.

Innholdsfortegnelse

Forstå PowerShell If-Else-Syntaks

PowerShell if-else-komponentene beregner en eller flere betinget uttrykk. Nedenfor ser du en If-setning syntaks. Denne stilen er noen ganger kalt flow control.,

if (<test1>) {<statement list 1>}

Som du kan se fra syntaks ovenfor, hver test er vedlagt i en parentes (). Tester kan gjøre bruk av ulike operatører som sammenligningen operatører og logiske operatorer,

uttalelsen viser inneholde kode som er ment å kjøre om resultatet av testen evaluerer til true.

Så, det er tre mulige uttalelser i en If-setning gruppe. Disse er IF, ELSEIF og ELSE-setninger.,

  • if erklæringen inneholder den første testen for å evaluere, etterfulgt av den første erklæringen liste lukket inne i klammeparentes {}.PowerShell hvis uttalelsen er den eneste setningen som kreves for å være til stede.
  • elseif uttalelse er der du vil legge forholdene. Du kan legge til flere ElseIf uttalelser når du flere forhold. PowerShell vil vurdere hver enkelt av disse forholdene sekvensielt.
  • else uttalelse godtar ikke hvilken som helst tilstand., Uttalelsen listen i denne erklæringen inneholder koden for å kjøre hvis alle de tidligere forholdene testet er falske.

Forstå PowerShell If-Else Logikk Flow

for Å videre forstå hvordan PowerShell-Om-Annet fungerer, må du gjøre deg kjent med dens logikk flyt. Diagrammet nedenfor illustrerer den grunnleggende flyt av PowerShell If-Else.,

PowerShell If-Else Logikk Flow

Når en if-setning går, PowerShell går gjennom hver tilstand vurdering om koden returnerer true eller false. En oppsummering av atferd er nedenfor:

  • PowerShell vurderer tilstanden i Test 1.
  • Dersom resultatet av Test 1) returnerer sann, koden inne i If-setning listen vil kjøre, så PowerShell avslutter If-setning.,
  • Dersom resultatet av Test 1) returnerer false, PowerShell fortsetter å vurdere tilstanden (Test n) i neste ElseIf uttalelse.
  • Dersom resultatet av Testen n returnerer false, PowerShell fortsetter å vurdere tilstanden (Test n) i neste ElseIf uttalelse, hvis en annen ElseIf uttalelse eksisterer -ELLER-
  • Dersom resultatet av Testen n returnerer false, koden i den Andre erklæringen går. Så, PowerShell vil avslutte Om uttalelse -ELLER-
  • Dersom resultatet av Testen n returnerer sann, koden i ElseIf uttalelse går. Så, PowerShell vil avslutte Om-setningen.,

ved Hjelp av PowerShell If-Else Setningen

De neste avsnittene er flere eksempler på hvordan bruke PowerShell If-Else setningen når du skriver skript. Teknikkene du lærer kan veilede deg i å bruke en If-setning bør du møte en virkelighet som krever sitt bruk.

Enkel If-Else Tilstand

du Starter med det mest grunnleggende er enkelt Hvis uttalelse. Du bør bruke en enkel if-setning når det finnes bare en betingelse for å teste.

eksemplet nedenfor tester om verdien av $num variabel er større enn 10., Hvis resultatet er sann, så er resultatet sa: "$num is greater than 10" vil bli vist på skjermen. Hvis resultatet er falske, PowerShell gjør ingenting, fordi det er kun en betingelse for å teste.

$num = 11if ($num -gt 10) { "$num is greater than 10"}

Lime inn koden ovenfor i PowerShell vil gi deg resultatet er vist nedenfor.,

Enkelt Hvis Tilstanden Eksempel

Nå, hvis du ønsker å legge til en standard «fallback» handling snarere enn bare å la PowerShell gjør ingenting når testresultatet er usant, kan du legge til den Andre erklæringen.

I eksempelet nedenfor, koden i den Andre erklæringen vil kjøre hvis verdien av $num variabelen IKKE er større enn 10.

$num = 9if ($num -gt 10){ "$num is greater than 10"}else{ "$num is NOT greater than 10"}

å Kjøre endret kode i PowerShell gir deg utgang vist nedenfor.,

Enkelt Hvis tilstanden

du Starter med PowerShell 7.0, en ny syntaksen for If-setning har blitt introdusert ved hjelp av en trefoldig operatør. Enkelt Hvis uttalelser kan gjøre god bruk av denne nye syntaks.

ved Hjelp av det samme eksemplet ovenfor, dette er hvordan koden skulle se ut med trefoldig operatør.,

$num = 11$num -gt 10 ? "$num is greater than 10" : "$num is NOT greater than 10"
Hvis uttalelse syntaks med trefoldig operatør

Flere Om-Annet Forhold med ElseIf

Når det er flere vilkår for å evaluere, du trenger å legge til en eller flere ElseIf uttalelser. Hver ElseIf erklæringen inneholder testen uttrykk og sin egen kode til å kjøre.,

skriptet nedenfor, når de blir utført, vil fortsette å be for en frukt navn til CTRL+C tastetrykk er utstedt, eller brukeren innganger bokstaven «X«.

Så, Hvis uttalelse vil gå gjennom hver tilstand i rekkefølge til det finner en match. Hvis input ikke passer inn i noen av de forhold koden i Andre uttalelse ville bli henrettet.

Nedenfor er en demonstrasjon av hvordan skriptet ovenfor oppfører seg når du kjører i PowerShell.,

Flere Om-Annet forhold som

Rapportering Gratis Diskplass Status

Gratis diskplass rapportering er en oppgave som er felles for system administratorer. Den vanlige måten å rapportere plass beskjed av faste disker på en Windows maskin dreier seg rundt den koden nedenfor.

Get-CimInstance -ClassName CIM_LogicalDisk | Where-Object {$_.DriveType -eq 3}

Den informasjon som koden ovenfor vil gå tilbake ville se noe som er vist i neste skjermbilde.,

Vanlig diskplass informasjon rapport

Som du kan se, utgang ovenfor viser stasjonsbokstaven, og den frie plass verdier, sammen med andre egenskaper. Mens utgang ovenfor er fint, det er ikke intuitive. Måten informasjonen blir presentert angir ikke om den diskplass som er i en kritisk advarsel eller staten eller normal.,

ved Hjelp av en PowerShell-If-setning for å Forbedre Koden

ved Hjelp av PowerShell If-Else-setning, en mer intuitiv utgang kan oppnås ved å legge til vilkår for å sjekke om det er ledig plass er over eller under en viss terskel. Og disse terskelverdiene vil angi status for ledig plass.

eksempel script nedenfor utfører følgende:

  • ved Hjelp av verdien til variabelen $Critical, definere terskelen som prosent av ledig plass vil bli merket som viktige.,
  • ved Hjelp av verdien til variabelen $Warning, definere terskelen som prosent av ledig plass vil bli merket som en advarsel.
  • Få alle fast disk informasjon fra den lokale maskinen
  • Loop gjennom hele disk informasjon til å finne ut ledig plass, og tag sin status.
    • Hvis ledig plass andelen er høyere enn verdien av $Warning variabel, diskplass status er merket som normalt.,
    • Hvis ledig plass andelen er høyere enn verdien av $Critical variabel, diskplass status er merket som advarsel.
    • Hvis ledig plass prosenten er mindre enn eller lik verdien av $Critical variabel, diskplass status er merket som viktige.
  • Skriv objektet egenskaper 'Drive Letter', 'Drive Name', 'Total Space (GB)', 'Free Space (GB)', 'Free Space (%)', og 'Status'.,
  • gå Tilbake endelige rapport

Kopier koden under og lagre skriptet med filnavn Get-DiskSpace.ps1. Ikke glem å endre verdier på $Critical og $Warning variabler hvis du vil teste med forskjellige terskler.

Når skriptet er lagret, kan du teste den ved å kalle sitt navn i PowerShell. Nedenfor er eksempel demonstrasjon av hvordan dette skriptet fungerer.,

Gratis Diskplass Status-Kommandoen Utgang

Som du kan se fra produksjonen, status for hver harddisk er bestemt av ledig plass prosent, noe som var et resultat av bruk av flere forhold med PowerShell-Om-Annet.

Flere og Nestede Hvis-Else

La oss si at du har en if-else setningen med en tilstand som definert i else blokker., Når if-else setningen går, else blokker er brukt hvis kode på innsiden av if blokker returnerer den false.

Innsiden av else blokker, du trenger for å utføre en annen betinget test. Som et resultat, trenger du en annen If-Else-setning. Dette scenariet er kalt en nestede Hvis-Annet. Den nestede Hvis-Else setningen er ofte brukt hvis den indre If-Else avhenger resultatet av driften i de ytre If-Else.

ved Hjelp av flere og nøstede If-Else-setninger kan være ganske forvirrende., Nøkkelen er å huske stillaset plassering og sørg for at du rykke inn koden din. Rykker inn koden din vil hjelpe deg til enkelt å gjenkjenne og skille If-Else-setninger.

Eksempel av Flere/Nøstede If-Else-Setninger

eksempel script nedenfor viser hvordan flere og nestede Hvis-Andre kan være avhengig av resultatet av hver andre. Logikken i koden under er som følger.

  • Hvis $SendEmail er $false skriptet vil gjøre noe, og avslutt.,
  • Hvis $SendEmail er $true, deretter $From og $To variabler må ikke være tomt eller null. Ellers $abortFlag vil bli satt til 1.
  • Hvis $SendEmail er $true og $CCEnabled er $true, deretter $CC variabel kan ikke være tomt eller null. Ellers $abortFlag vil bli satt til 1.,
  • Hvis $SendEmail er $true og $BCCEnabled er $true, deretter $BCC variabel kan ikke være tomt eller null. Ellers $abortFlag vil bli satt til 1.
  • Hvis $abortFlag verdien er 1, skriptet vil gå ut på dette punktet, og vil ikke fortsette.
  • Hvis $abortFlag verdi er 0, skriptet fortsetter til slutten.

Kopier koden under og lagre det som Send-MyMail.ps1. Ikke endre noen verdier ennå.,

Når du har lagret filen, kan du kjøre det i PowerShell som vises nedenfor. Demonstrasjonen nedenfor viser resultatet av skriptet når den variable verdier gå uendret.

Nestede Hvis-Annet eksempel

Neste, redigere skriptet og oppdatere alle variablene riktig som denne kodebiten nedenfor.

Etter å redigere variabler, lagre skriptet, og kjører det på nytt. Det burde vise deg de samme resultatet, som vist nedenfor.,

en Annen nestede Hvis-annet eksempel

Nå, endre variabler og prøve forskjellige kombinasjoner for å teste hvordan den nestede Hvis-Annet vil bli berørt. Modifisere og teste på din egen ville hjelpe deg å forstå logikken videre.

Oppsummering

I denne artikkelen, har du lært om betinget logikk bygge – PowerShell-If-Else-komponentene., Ved hjelp av If-Else setningen kan scripters å formulere betinget logikk og direkte sine skript » handlinger basert på testresultater.

Med de eksempler som er vist i denne artikkelen, bør du ha lært måter og teknikker på hvordan å bruke en If-Else setningen når du oppretter en beslutning-drevet kode. If-Else kan være enkle å bruke en enkelt tilstand og blir mer komplekse mens du grave dypere inn i den nestede Hvis-Else-setninger.

Hva tror du av en If-Else setningen? Er dette noe som du tror du ville være å bruke mer og mer etter å ha lest denne artikkelen?, Hvilke andre formål kan du tenke på hvor du kan bruke den kunnskapen du har kjøpt her?

Mer å Lese

  • Om
  • Tilbake til det Grunnleggende: PowerShell foreach Loop

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *