Welcome to Our Website

Adam Automator (Română)

scripturile pot lua decizii. Cum? Folosind un concept numit logică condiționată. Instrucțiunea PowerShell if și construcțiile if / else sunt modalitățile comune de a defini condițiile.

când scrieți scripturi PowerShell, faceți acest lucru având în vedere o anumită sarcină sau sarcini. Dar, o operațiune poate avea mai mult de o acțiune posibilă bazată pe una sau mai multe condiții. Această situație este în cazul în care PowerShell If-Else construct vine.,în acest articol, veți afla ce este construcția PowerShell If-Else, înțelegeți sintaxa și cum funcționează. Veți învăța, de asemenea, din exemple câteva dintre diferitele moduri în care puteți utiliza PowerShell If-Else pentru a adăuga manipularea logică condiționată în scripturile dvs.

cuprins

înțelegerea sintaxei PowerShell If-Else

construcția PowerShell if-else evaluează una sau mai multe expresii condiționale. Mai jos veți vedea sintaxa declarației If. Acest stil este uneori numit control al fluxului.,

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

după Cum puteți vedea din sintaxa de mai sus, fiecare test este închis într-o paranteză (). Testele pot folosi diferiți operatori, cum ar fi operatorii de comparație și operatorii logici,

listele de instrucțiuni conțin codul destinat rulării dacă rezultatul testului se evaluează la true.

apoi, există trei declarații posibile într-un grup de declarații If. Acestea sunt declarațiile IF, ELSEIF și ELSE.,

  • if declarație conține prima încercare de a evalua, urmat de prima declarație listă închisă în interiorul acolade {}.Declarația PowerShell if este singura declarație necesară pentru a fi prezentă.
  • declarațiaelseif este locul unde adăugați condiții. Puteți adăuga mai multe declarații ElseIf atunci când mai multe condiții. PowerShell va evalua fiecare dintre aceste condiții secvențial.
  • declarațiaelse nu acceptă nicio condiție., Lista de instrucțiuni din această declarație conține codul de rulat dacă toate condițiile anterioare testate sunt false.

înțelegerea fluxului logic PowerShell If-Else

pentru a înțelege în continuare cum funcționează PowerShell If-Else, trebuie să vă familiarizați cu fluxul logic. Diagrama de mai jos ilustrează fluxul de bază al PowerShell If-Else.,

PowerShell Dacă-Altceva Logica Fluxul

atunci Când declarația dacă se execută, PowerShell trece prin fiecare condiție de evaluare în cazul în care codul întoarce true sau false. Un rezumat al comportamentului este mai jos:

  • PowerShell evaluează starea în testul 1.
  • dacă rezultatul testului 1 returnează true, codul din lista de instrucțiuni If va rula, apoi PowerShell iese din instrucțiunea If.,
  • dacă rezultatul testului 1 returnează false, PowerShell continuă să evalueze starea (testul n) în următoarea declarație ElseIf.
  • Dacă rezultatul Testului n returnează false, PowerShell continuă să evalueze starea (Test n), în următoarele ElseIf declarație, dacă un alt ElseIf declarație există -SAU-
  • Dacă rezultatul Testului n returnează false, cod în declarația Altceva ruleaza. Apoi, PowerShell va ieși din instrucțiunea If-sau –
  • dacă rezultatul testului n returnează true, codul din Instrucțiunea ElseIf rulează. Apoi, PowerShell va ieși din Declarația If.,

folosind instrucțiunea PowerShell If-Else

următoarele secțiuni sunt câteva exemple de utilizare a declarației PowerShell If-Else atunci când scrieți scripturi. Tehnicile pe care le veți învăța vă pot ghida în utilizarea declarației If ar trebui să întâlniți o situație din viața reală care necesită utilizarea acesteia.

condiția unică If-Else

începând cu cea mai de bază este declarația unică If. Ar trebui să utilizați o singură declarație if atunci când există o singură condiție de testat.

exemplul de mai jos testează dacă valoarea variabilei $num este mai mare de 10., Dacă rezultatul este adevărat, atunci rezultatul care spune "$num is greater than 10" va fi afișat pe ecran. Dacă rezultatul este fals, PowerShell nu face nimic, deoarece există o singură condiție de testat.

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

lipirea codului de mai sus în PowerShell vă va oferi rezultatul prezentat mai jos.,

Singur Dacă Starea Exemplu

Acum, dacă doriți să adăugați un default „de rezervă” de acțiune, mai degrabă decât să lași PowerShell face nimic atunci când rezultatul testului este fals, puteți adăuga declarația Altceva.

în exemplul de mai jos, codul din Instrucțiunea Else va rula dacă valoarea variabilei $num nu este mai mare de 10.

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

rularea codului modificat în PowerShell vă oferă ieșirea prezentată mai jos.,

Singură condiție în Cazul în care

Incepand cu PowerShell 7.0, o nouă sintaxă pentru Cazul în care declarația a fost introdus folosind un operator ternar. Single If declarații pot face o bună utilizare a acestei noi sintaxă.folosind același exemplu de mai sus, așa ar arăta codul cu operatorul ternar.,

$num = 11$num -gt 10 ? "$num is greater than 10" : "$num is NOT greater than 10"
Dacă declarația de sintaxă, folosind operatorul ternar

mai Multe if-Else Condiții cu ElseIf

atunci Când există mai multe condiții pentru a evalua, aveți nevoie pentru a adăuga unul sau mai multe ElseIf declarații. Fiecare declarație ElseIf conține expresia de testare și propriul cod pentru a rula.,

script-ul de mai jos, atunci când sunt executate, se va ține pe a determinat pentru un nume de fructe până la CTRL+C taste este emis, sau utilizatorul introduce litera „X„.

apoi, instrucțiunea If va parcurge fiecare condiție în ordine până când găsește o potrivire. Dacă intrarea nu corespunde niciuneia dintre condiții, codul din declarația Else ar fi executat.

mai jos este demonstrația modului în care se comportă scriptul de mai sus atunci când rulează în PowerShell.,

mai Multe if-Else condiții

de Raportare Spațiu Liber pe Disc Statutul

spațiu Liber pe disc raportare este o sarcină care este comun pentru sistemul de administratori. Modul obișnuit de raportare a informațiilor spațiale ale discurilor fixe pe o mașină Windows se învârte în jurul codului de mai jos.

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

informația că codul de mai sus va returna ar arăta ca cel prezentat în următoarea captură de ecran.,

Simplu spațiu pe disc raport de informare

după Cum puteți vedea, rezultatul de mai sus arată o literă de unitate și spațiul liber de valori, împreună cu alte proprietăți. În timp ce ieșirea de mai sus este bine, nu este intuitiv. Modul în care sunt prezentate informațiile nu indică dacă spațiul pe disc este într-o stare critică sau de avertizare sau normal.,

folosind o declarație PowerShell If pentru a îmbunătăți codul

folosind instrucțiunea PowerShell If-Else, o ieșire mai intuitivă poate fi obținută prin adăugarea de condiții pentru a verifica dacă spațiul liber este peste sau sub anumite praguri. Și aceste praguri vor defini starea spațiului liber pe disc.

scriptul exemplu de mai jos efectuează următoarele:

  • folosind valoarea variabilei$Critical, definiți pragul la care procentul de spațiu liber va fi etichetat ca fiind critic.,
  • folosind valoarea variabilei $Warning, definiți pragul la care procentul de spațiu liber va fi etichetat ca avertisment.
  • obțineți toate informațiile despre discul fix de la mașina locală
  • bucla prin toate informațiile despre disc pentru a determina spațiul liber și a eticheta starea acestuia.
    • dacă procentul de spațiu liber este mai mare decât valoarea variabilei$Warning, starea spațiului pe disc este etichetată ca normală.,
    • dacă procentul de spațiu liber este mai mare decât valoarea variabilei $Critical, starea spațiului pe disc este etichetată ca avertisment.
    • dacă procentul de spațiu liber este mai mic sau egal cu valoarea variabilei $Critical, starea spațiului pe disc este etichetată ca fiind critică.
  • Compune proprietățile obiectului 'Drive Letter', 'Drive Name', 'Total Space (GB)', 'Free Space (GB)', 'Free Space (%)' și 'Status'.,
  • returnați raportul final

copiați codul de mai jos și salvați scriptul cu numele fișierului Get-DiskSpace.ps1. Nu uitați să schimbați valorile $Critical și $Warning variabile dacă doriți să testați cu praguri diferite.după ce scriptul este salvat, testați-l apelând numele său în PowerShell. Mai jos este demonstrația de probă a modului în care funcționează acest script.,

Spațiu Liber pe Disc Statut de Comandă de Ieșire

după Cum puteți vedea de la ieșire, starea pentru fiecare disc este determinată de spațiu liber pe disc procent, care a fost rezultatul folosirii mai multor condiții cu PowerShell Dacă-Altceva.

multiple și imbricate If-Else

Să presupunem că aveți o declarație if-else cu o condiție definită în else bloc., Când instrucțiunea if-else rulează, blocul elseeste invocat dacă codul din interiorul blocului if returnează false.

în interiorul blocului else, trebuie să efectuați un alt test condiționat. Drept urmare, aveți nevoie de o altă declarație If-Else. Acest scenariu se numește imbricat dacă-altceva. Declarația imbricată If-Else este folosită în mod obișnuit dacă If-Else interior depinde de rezultatul operației în exterior If-Else.

folosind mai multe și imbricate dacă-altceva declarații poate fi destul de confuz., Punctul cheie este să vă amintiți plasarea schelei și să vă asigurați că vă Indentați codul. Indentarea codului vă va ajuta să recunoașteți și să separați cu ușurință declarațiile If-Else.

exemplu de declarații If-Else multiple/imbricate

scriptul exemplu de mai jos arată cum multiple și imbricate If-Else poate depinde de rezultatul reciproc. Logica codului de mai jos este următoarea.

  • Dacă $SendEmail este $false, script-ul nu va face nimic și de ieșire.,
  • Dacă $SendEmail este $true, apoi $From și $To variabile nu trebuie să fie gol sau null. În caz contrar, $abortFlag va fi setat la 1.
  • Dacă $SendEmail este $true și $CCEnabled este $true, apoi $CC variabilă nu trebuie să fie gol sau null. În caz contrar, $abortFlag va fi setat la 1.,
  • Dacă $SendEmail este $true și $BCCEnabled este $true, apoi $BCC variabilă nu trebuie să fie gol sau null. În caz contrar, $abortFlag va fi setat la 1.
  • dacă valoarea $abortFlag este 1, scriptul va ieși în acest moment și nu va continua.
  • dacă valoarea $abortFlag este 0, scriptul continuă până la sfârșit.

copiați codul de mai jos și salvați-l ca Send-MyMail.ps1. Nu modificați încă nicio valoare.,după ce ați salvat fișierul, rulați-l în PowerShell așa cum se arată mai jos. Demonstrația de mai jos arată rezultatul scriptului atunci când valorile variabile rămân neschimbate.

Imbricate Dacă-Altcineva exemplu

Apoi, editați script-ul și de a actualiza toate variabilele corect ca acest fragment de mai jos.

după editarea variabilelor, salvați scriptul și rulați-l din nou. Ar trebui să vă arate același rezultat, așa cum se vede mai jos.,

un Alt imbricate Dacă-altcineva exemplu

Acum, modifica variabilele și să încerce diferite combinații pentru a testa modul în care imbricate Dacă-Altfel vor fi afectate. Modificarea și testarea pe cont propriu ar ajuta să înțelegeți logica în continuare.

rezumat

În acest articol, ați aflat despre construcția logică condiționată – construcția PowerShell If-Else., Utilizarea instrucțiunii If-Else permite scripterilor să formuleze logica condiționată și să direcționeze acțiunile scripturilor lor pe baza rezultatelor testelor.cu exemplele prezentate în acest articol, ar fi trebuit să învățați modalități și tehnici cu privire la modul de utilizare a declarației If-Else atunci când creați un cod bazat pe decizii. If-Else poate fi simplu folosind o singură condiție și devine mai complexă în timp ce săpați mai adânc în declarațiile imbricate If-Else.ce părere aveți despre declarația If-Else? Este ceva ce credeți că veți folosi din ce în ce mai mult după ce ați citit acest articol?, Ce alte scopuri vă puteți gândi unde puteți aplica cunoștințele pe care le-ați dobândit aici?

Lectură suplimentară

  • despre If
  • înapoi la elementele de bază: bucla PowerShell foreach

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *