Welcome to Our Website

Adam the Automator (Suomi)

Scripts voi tehdä päätöksiä. Miten? Käyttämällä käsitettä ehdollinen logiikka. PowerShell if statement ja if / else constructs ovat yleisiä tapoja määritellä olosuhteet.

Kun kirjoitat PowerShell-skriptejä, teet sen tietyn tehtävän tai tehtävät mielessä. Mutta, operaatio voi olla useampi kuin yksi mahdollinen toiminta perustuu yhteen tai useampaan ehtoon. Tässä tilanteessa PowerShell If-Else construct tulee sisään.,

tässä artikkelissa opit, mikä PowerShell If-Else construct on, ymmärrä sen syntaksi ja miten se toimii. Voit myös oppia joitakin esimerkkejä eri tapoja, joilla voit käyttää PowerShell, Jos-Muuta lisää ehdollinen logiikka käsittely skriptejä.

Sisällysluettelo

Ymmärtää PowerShell-Jos-Muu Syntaksi

PowerShell-jos-muu rakentaa arvioi yksi tai useampia ehdollisia lausekkeita. Alla näet If-lausekkeen syntaksin. Tätä tyyliä kutsutaan joskus flow control.,

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

Kuten voit nähdä syntaksi edellä, jokainen testi on suljettu suluissa (). Testejä voidaan käyttää eri toimijoiden, kuten vertailuoperaattoreita ja loogisia operaattoreita,

ilmoitus luettelot sisältävät koodin tarkoitus ajaa jos testin tulos on tosia.

tämän jälkeen If-lausumaryhmässä on kolme mahdollista lausumaa. Nämä ovat IF, ELSEF, ja muut lausunnot.,

  • if selvitys sisältää ensimmäinen testi arvioida, seurasi ensimmäinen lausunto listan liitteenä sisällä aaltosulkeita {}.PowerShell if statement on ainoa lausuma, jonka on oltava läsnä.
  • elseif lausunto on, jossa voit lisätä ehtoja. Voit lisätä useita ElseIf lausuntoja, kun useita ehtoja. PowerShell arvioi jokaisen näistä olosuhteista peräkkäin.
  • elselausuma ei hyväksy mitään ehtoa., Tässä lausumassa oleva lausumaluettelo sisältää ajettavan koodin, jos kaikki testatut aiemmat olosuhteet ovat vääriä.

Ymmärtää PowerShell-If-Else-Logiikan Virtaus

edelleen ymmärtää, miten PowerShell-Jos-Muu toimii, sinun täytyy tutustua sen logiikka virtaus. Alla oleva kaavio kuvaa PowerShellin perusvirtausta If-Else.,

PowerShell If-Else-Logiikan Virtaus

Kun jos ilmoitus toimii, PowerShell kulkee läpi jokaisen kunnon arviointi jos koodi palauttaa true tai false. Yhteenveto käyttäytymisestä on alla:

  • PowerShell arvioi testin 1 kunnon.
  • Jos testin 1 tulos palautuu todeksi, If-lausumaluettelon sisällä oleva koodi suoritetaan, PowerShell poistuu If-lausumasta.,
  • Jos tulos Testi 1 palauttaa false, PowerShell edelleen arvioida ehto (Testi n) seuraavan ElseIf lausunto.
  • Jos tulos Testi n palauttaa false, PowerShell edelleen arvioida ehto (Testi n) seuraavan ElseIf lausunto, jos toinen ElseIf selvitys olemassa -TAI-
  • Jos tulos Testi n palauttaa false, koodi Muu selvitys toimii. Sitten, PowerShell poistuu, Jos selvitys -TAI-
  • Jos tulos Testi n palauttaa true, koodi If selvitys toimii. Sitten PowerShell poistuu If-lausunnosta.,

Käyttämällä PowerShell, Jos-Muu Selvitys

seuraava kohdissa on useita esimerkkejä siitä, miten käyttää PowerShell-Jos-Else selvitys, kun kirjoitat skriptejä. Oppimasi tekniikat voivat ohjata sinua käyttämään If-lausuntoa, jos kohtaat tosielämän tilanteen, joka vaatii sen käyttöä.

Single If-Else Condition

alkaen kaikkein perustavimmasta on single If statement. Sinun pitäisi käyttää yhden jos lausunto, kun on vain yksi ehto testata.

alla oleva esimerkki testaa, onko $num muuttujan arvo suurempi kuin 10., Jos tulos on totta, niin tulos sanonta "$num is greater than 10" näkyy näytöllä. Jos tulos on väärä, PowerShell ei mitään, koska on vain yksi ehto testata.

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

Liittäminen yllä oleva koodi osaksi PowerShell antaa sinulle tulos näkyy alla.,

Yksi, Jos Ehto Esimerkki

Nyt, jos haluat lisätä default ”fallback” toiminta eikä vain kerroit PowerShell tehdä mitään, kun testin tulos on väärä, voit lisätä Muu selvitys.

alla olevassa esimerkissä, koodi Muu selvitys ajaa jos arvo $num muuttuja ei OLE suurempi kuin 10.

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

Käynnissä muokattu koodi PowerShell antaa sinulle lähdön alla.,

Yksi, Jos ehto

Alkaen PowerShell 7.0, uusi syntaksi Jos lausunto on otettu käyttöön käyttämällä kolmen komponentin operaattori. Single If-lausekkeet voivat hyödyntää tätä uutta syntaksia.

käyttäen samaa esimerkkiä yllä, tältä koodi näyttäisi ternary-operaattorin kanssa.,

$num = 11$num -gt 10 ? "$num is greater than 10" : "$num is NOT greater than 10"
If-lauseen syntaksi käyttää kolmen komponentin operaattori

Useita If-Else Olosuhteissa, joissa ElseIf

Kun on olemassa useita ehtoja arvioida, sinun täytyy lisätä yksi tai useampi If lausuntoja. Jokainen ElseIf-lauseke sisältää koeilmaisun ja oman koodin suoritettavaksi.,

script alla, kun teloitettiin, se pitää kehotukset hedelmiä nimi, kunnes CTRL+C näppäilyn on myönnetty, tai käyttäjä syöttää kirjaimen ”X”.

sitten If-lausuma käy jokaisen ehdon läpi järjestyksessä, kunnes se löytää sopivan. Jos panos ei vastaa mitään ehtoja, koodi sisällä Muu lausunto olisi toteutettu.

alla on osoitus siitä, miten yllä oleva skripti käyttäytyy ajettaessa Powershellissa.,

Useita If-Else-ehtoja

Raportointi Vapaata levytilaa Tila

Vapaata levytilaa raportointi on yksi tehtävä, joka on yleistä, että järjestelmän ylläpitäjät. Tavallinen tapa raportoida Windows-koneen kiinteiden levyjen tilatietoja pyörii alla olevan koodin ympärillä.

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

tiedon, että yllä oleva koodi palauttaa näyttäisivät jotakuinkin samalta kuin tämä yksi esitetty seuraavassa kuvakaappaus.,

Tavallinen levytilaa tiedot mietintö

Kuten voit nähdä, lähtö yläpuolella näkyy aseman kirjain ja vapaa tila-arvoja, sekä muita ominaisuuksia. Vaikka lähtö edellä on hieno, se ei ole intuitiivinen. Tapa, jolla tieto esitetään, ei kerro, onko levytila kriittisessä vai varoitustilassa vai normaali.,

Käyttämällä PowerShell, Jos Ilmoitus on Parantaa Koodi

Käyttämällä PowerShell, Jos-Else selvitys, enemmän intuitiivinen tuotos voidaan saavuttaa lisäämällä ehtoja tarkistaa, jos vapaata tilaa on yli tai alle tietyn raja-arvon. Nämä kynnykset määrittelevät vapaan levytilan tilan.

esimerkki script alla toimii seuraavasti:

  • Käyttää muuttujan arvo $Critical määrittää kynnys, johon prosenttia vapaata tilaa on koodattu kuin kriittinen.,
  • Käyttää muuttujan arvo $Warning määrittää kynnys, johon prosenttia vapaata tilaa on koodattu kuin varoitus.
  • Saada kaikki kiinteät levyn tietoja paikallisen koneen
  • Silmukan läpi kaikki levyn tiedot määrittää, vapaata tilaa ja tag sen tilan.
    • Jos vapaata tilaa prosenttiosuus on suurempi kuin arvo $Warning muuttuja, levytilan tila on merkitty normaalisti.,
    • Jos vapaan tilan prosenttiosuus on suurempi kuin $Critical muuttujan arvo, levytilan tila merkitään varoitukseksi.
    • Jos vapaan tilan prosenttiosuus on pienempi tai yhtä suuri kuin $Critical muuttujan arvo, levytilan tila merkitään kriittiseksi.
  • Kirjoita objektin ominaisuudet 'Drive Letter', 'Drive Name', 'Total Space (GB)', 'Free Space (GB)', 'Free Space (%)' ja 'Status'.,
  • Paluu lopullinen mietintö

Kopioi alla oleva koodi ja tallenna script tiedostonimi Get-DiskSpace.ps1. Älä unohda muuttaa arvoja $Critical ja $Warning muuttujia, jos haluat testata eri raja-arvot.

kun käsikirjoitus on tallennettu, testaa sitä kutsumalla sen nimeä Powershellissa. Alla on näyte osoitus siitä, miten tämä käsikirjoitus toimii.,

Vapaata levytilaa Status-Komennon Tuloste

Kuten voit nähdä lähtö, tilan kunkin levyn määräytyy vapaata levytilaa prosenttiosuus, joka oli seurausta käyttämällä useita ehtoja Powershellissa If-Else.

Useita ja Sisäkkäisiä If-Else

oletetaan, että sinulla on if-else-lause ehto on määritelty else lohko., Kun if-else selvitys toimii, else lohko on vedota, jos koodi sisäpuoli if lohko palauttaa false.

else – lohkon sisällä on suoritettava toinen ehdollinen testi. Tämän seurauksena, tarvitset toisen jos-Muu lausunto. Tätä skenaariota kutsutaan sisäkkäiseksi jos-muuksi. Sisäkkäistä If-Else-lausumaa käytetään yleisesti, jos sisempi If-Else riippuu ulko-If-Else-operaation tuloksesta.

käyttämällä useita ja sisäkkäisiä If-Else-lausuntoja voi olla varsin hämmentäviä., Tärkeintä on muistaa telineen sijoitus ja varmista, että sisennät koodisi. Koodisi sisentäminen auttaa sinua tunnistamaan ja erottamaan If-Else-lausuntosi helposti.

Esimerkki Useita/Sisäkkäisiä If-Else Lausuntoja,

esimerkki script alla osoittaa, kuinka useita ja sisäkkäisiä Jos-Muuta voi olla riippuvainen seurausta toisiaan. Alla olevan koodin logiikka on seuraava.

  • Jos $SendEmail on $false, skripti ei tee mitään, ja poistu.,
  • Jos $SendEmail on $true, niin $From ja $To muuttujaa ei saa olla tyhjä tai null. Muuten $abortFlag asetetaan 1.
  • Jos $SendEmail on $true ja $CCEnabled on $true, niin $CC muuttuja ei saa olla tyhjä tai null. Muuten $abortFlag asetetaan 1.,
  • Jos $SendEmail on $true ja $BCCEnabled on $true, niin $BCC muuttuja ei saa olla tyhjä tai null. Muuten $abortFlag asetetaan 1.
  • Jos $abortFlag arvo on 1, käsikirjoitus poistuu tässä vaiheessa ja ei jatka.
  • Jos $abortFlag arvo on 0, käsikirjoitus jatkuu loppuun saakka.

Kopioi alla oleva koodi ja tallenna se Send-MyMail.ps1. Älä vielä muuta mitään arvoja.,

kun olet tallentanut tiedoston, suorita se Powershellissa kuten alla on esitetty. Alla olevassa demonstroinnissa näkyy skriptin tulos, kun muuttujan arvot muuttuvat muuttumattomiksi.

Sisäkkäiset If-Else-esimerkki

Seuraava, muokata käsikirjoituksen ja päivittää kaikkia muuttujia oikein, kuten tämä pätkä alla.

muuttujien muokkaamisen jälkeen tallenna skripti ja suorita se uudelleen. Sen pitäisi näyttää sama tulos, kuten alla.,

Toinen sisäkkäiset If-else-esimerkki

Nyt, muuttaa muuttujia ja kokeilla eri yhdistelmiä testata, miten sisäkkäisiä If-Else vaikuttaa. Oman logiikan muokkaaminen ja testaaminen auttaisi ymmärtämään logiikkaa edelleen.

Tiivistelmä

tässä artikkelissa, olet oppinut ehdollinen logiikka rakentaa – PowerShell-Jos-Muu rakentaa., If-Else-lausuman avulla skripterit voivat muotoilla ehdollisen logiikan ja ohjata skriptiensä toimintaa testitulosten perusteella.

tässä artikkelissa esitetyillä esimerkeillä olisi pitänyt opetella tapoja ja tekniikoita, miten If-Else-lausumaa käytetään päätöksentekoperusteista koodia luodessa. If-Else voi olla yksinkertainen yhdellä ehdolla ja monimutkaistuu, kun kaivaa syvemmälle sisäkkäisiin If-Else-lausuntoihin.

Mitä mieltä olet If-Else-lausunnosta? Onko tämä jotain, että luulet käyttäväsi enemmän ja enemmän luettuasi tämän artikkelin?, Mitä muita tarkoituksia voit ajatella, mihin voit soveltaa hankkimaasi tietoa täällä?

kirjallisuutta

  • Jos
  • Takaisin Perusasioihin: PowerShell-foreach Silmukka

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *