Úvod do slučiek v PowerShell

Budeme vždy potrebovať slučky, ak budeme mať niečo opakujúce sa práce. V slučke spúšťame opakovaný kód alebo akýkoľvek príkaz. Jeden skutočný príklad, predpokladajme, že v škole je 20000 študentov a z nejakého dôvodu sa univerzita rozhodla dať každému študentovi 5 bodov navyše za skúšky. Univerzita sa preto rozhodla udeliť týchto 5 bodov každému študentovi okrem tých, ktorých dochádzka je kratšia ako 100 dní. Teraz len predpokladáte, ako to zamestnanci urobia, budú musieť skontrolovať známky a dochádzku každého študenta. Ale to isté s pomocou akejkoľvek slučky to mohlo byť urobené veľmi ľahko, vytvorením skupiny študentov s ich známkami a dátumami dochádzky. Týmto spôsobom dokážeme ušetriť ďalšie úsilie. Pochopme podrobne slučky v PowerShell.

Typy slučiek v PowerShell

Existuje veľa spôsobov, ako spustiť slučku v PowerShell, ale vždy to záleží na vašich požiadavkách a uskutočniteľnosti programu, napríklad, ak chcete vykonať aspoň raz pre ľubovoľné pole, ako by sme mali používať slučku do-while, pre smyčku existujú aj iné. a pre každého, kto je dobrý .

Druhy a ich príklady sú uvedené nižšie:

1. Zatiaľ čo

Zatiaľ čo príkaz berie podmienku ako argument a vykonanie príkazu vo vnútri slučky while závisí od podmienky, to znamená, že ak je podmienka úspešná, vykoná príkaz inak, nie.

syntaxe:

while(condition)
(
Statement 1
Statement 2
….
)

Príklad:

$j = 0
while($j -lt 10)
(
Write-Output $j
$j++ )

Nižšie je obrazovka na vykonanie vyššie uvedeného kódu

2. Urobte chvíľku

Funkcia Do while je podobná rozdielu iba v slučke, keď sa vykoná aspoň raz, čo znamená, že vykoná blok prvýkrát a počas blokovania, ak je splnená podmienka. V nižšie uvedenej syntaxi blokujte prvýkrát vykonaný prvýkrát.

  • Vykonajte : Tento blok sa vykoná prvý a raz po spustení vykonávania.
  • Zatiaľ čo : Vykonanie vyhlásenia 1 a vyhlásenia 2 úplne závisí od úspechu podmienky.

syntaxe:

Do
(
Statement 1
Statement 2
….)while(condition)(
Statement 3
Statement 4
…..
)

Príklad č. 1:

$j = 0
do
(
Write-Output $j // this block will execute first time
$j++
)while($j -lt 10)

Príklad č. 2:

V tomto príklade sa blok vykoná po prvýkrát, keď podmienka nebola splnená.

$j = 0
do
(
Write-Output $j
$j--
)while($j -gt 0)

Obrazovka oboch programov je zobrazená nižšie

3. Do, kým

Urobte, kým sa nebude trochu líšiť od času, kým bude poprava pokračovať až do návratu negatívneho výsledku „do blokovania“. Tu sú dve hlavné veci.

  • Vykonajte : Tento blok bude pokračovať vo vykonávaní, až kým sa stav bloku nezlyhá, čo znamená, že blok nevráti zápornú hodnotu.
  • Kým : Blokujú sa príkazy 1 a 2, kým podmienky nevrátia negatívne výsledky.

syntaxe:

do
(
Statement 1
Statement 2
….
)until(condition)

Príklad:

$i = 0
do
(
Write-Output $i
$i++
)until($i -ge 5) //keep checking condition

V bloku „do do“ vidíme, že vykonávanie do bloku bude pokračovať, kým podmienka „do bloku“ nevracia kladnú hodnotu.

Nižšie je obrazovka na vykonanie vyššie uvedeného kódu

4. Pre

Pre príkaz spustí zoznam príkazov nula alebo viackrát na základe počiatočného nastavenia. V syntaxi cyklu for loop sú tri dôležité oddiely

  • Inicializačná sekcia : V tejto sekcii je priradená počiatočná hodnota pre každú premennú, táto sekcia sa spustí prvýkrát.
  • Podmienka : V stavových častiach píšeme náš stav, pre ktorý bude prebiehať slučka, čo znamená, že vykonanie bloku príkazov vždy závisí od úspechu častí podmienok, ak je podmienka splnená, príkazový blok sa vykoná inak, nie.
  • Operácia : V tomto bloku môžeme podľa našich požiadaviek zvýšiť, znížiť alebo zmeniť hodnotu inicializácie premennej alebo akýchkoľvek vecí.

syntaxe:

for($initialisation; condition; operation)
(
Statement 1
Statement 2
….
)

Príklad č. 1:

for($i = 0; $i -lt 3; $i++)
(
Write-Output $i
)

Výstupná obrazovka vyššie uvedeného kódu

Mnohokrát jeden pre slučku nestačí na splnenie našich požiadaviek, takže môžeme použiť vnorené pre slučky. Mali by sme sa pokúsiť vyhnúť sa hniezdeniu slučiek, pretože ich časová zložitosť môže byť veľmi vysoká, ak sa s nimi nebude správne zaobchádzať. Nižšie je uvedený príklad vnoreného pre slučku.

Príklad č. 2:

for($j = 0; $j -lt 3; $j++)
(
$line = ''for($j = 0; $j -lt 3; $j++)
(
$line += $j.ToString() + $j.ToString() + ' '
)
Write-Output $line
)

Výstup: 00 11 22

5. Navždy

„Foreach“ spúšťa bloky príkazov nepretržite po poslednú položku poľa. Dobré veci týkajúce sa každého príkazu je, že nemusíme písať žiadny samostatný kód, aby sme mohli extrahovať celý rad položiek. Všeobecne je výraz „foreach“ optimalizovanou verziou slučky „for“, ktorá dáva vnútornú položku poľa bez toho, aby napísala akékoľvek programy. Tu jednoducho skontroluje položku vo vnútri poľa, na ktorej spúšťame slučku „foreach“, ak tam bude nejaká položka, vykoná príkazové bloky 1 a 2.

syntaxe:

foreach($arrayItems)
(
Statement 1
Statement 2
…..
)

Príklad:

$numbers = 23, 21, 22, 78
foreach($number in $numbers)
(
“$number is now =“ +$number
)

Pod obrazovkou sa zobrazujú vyššie uvedené popravy

Výhody slučiek v PowerShell

Najväčšou výhodou použitia slučky je to, že obmedzuje priveľa manuálnej práce, a preto je veľmi dobré kontrolovať veľkú veľkosť údajov pre podobný druh činnosti. Povedzme, že chcem, aby ste vytlačili číslo 1 až 10 000 000 a povedali sme vám, že ku každému číslu, ktoré je deliteľné číslom 2, môžete pridať číslo 1, čo je párne číslo. Ak potom začnete tlačiť jeden po druhom a pokúsite sa pridať každé 1 párne číslo, bude to trvať príliš dlho. Lepším a ľahším spôsobom, ako ste navrhli, bolo len opakovanie tohto procesu pridávania čísla k číslu, kým nedosiahneme 1000000. Najväčší prínos, ktorý získame zo slučky, je to, že opakovane používame rovnaký kód, nevyžadujeme písanie rovnaký kód pre údaje v lakhoch, automaticky vykoná kód do konca.

Ďalej uvádzame niekoľko výhod

  • Zvýšte použiteľnosť kódu, čím sa zmenší kód
  • Rýchlejší výpočet pre veľké dáta, čo šetrí veľa manuálnej práce
  • Redundancia kódu je menšia.

Príklad s jeho výhodami

Otázka: tlač až do 1 000.

Without loop,
Write-Output 1;
Write-Output 2;
Write-Output 3;
Write-Output 4;
…so on
Till 100

With loop,
$x=1..100
foreach($y in $x)(
Write-Output $y;
)

Odporúčané články

Toto bol sprievodca slučkami v PowerShell. Tu diskutujeme typy slučiek v PowerShell spolu s ich výhodami. Zistili sme, že slučky sú veľmi výkonným nástrojom s menšou námahou používať rovnaký kód. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Čo je to Shell Scripting?
  2. Funkcie reťazca PowerShell
  3. Operátori PowerShell
  4. Príkazy PowerShell
  5. Príklady poľa v PowerShell

Kategórie: