Hogyan tud egy PowerShell for Loop többször futtatni egy parancsot

A For ciklus az egyik legértékesebb eszköz bármely programozási nyelvben(valuable tools in any programming language) , és  a Microsoft PowerShell sem más. Más ciklusokat is használhat a parancsok ismétlésére, de a For ciklus talán a legegyszerűbb.

A tömbök feletti iterációtól a függvény előre meghatározott számú végrehajtásáig számos dolgot elérhet ezzel az eszközzel. Itt található egy oktatóanyag a For ciklusok használatához a PowerShellben(PowerShell) .

Mire használható(Use) a For Loops a PowerShellben(PowerShell) ?

A Command Prompttal(Command Prompt) ellentétben a PowerShell egy teljes parancsfájl-környezet. Ez azt jelenti, hogy a parancsok kézi bevitele helyett újrafelhasználható PowerShell-parancsfájlokat(PowerShell scripts) írhat a feladatok automatikus végrehajtásához. A For ciklusok pedig ezeknek a moduloknak a kulcsa.

A For utasítás meghatározott számú alkalommal megismétli a szkriptblokkot, módosítva egy adott változót a folyamat nyomon követése érdekében. Ez lehetővé teszi a hurok használatát néhány meglehetősen érdekes forgatókönyvhöz.

Létrehozhat számsorozatokat, meghatározhat prímszámot, vagy megjeleníthet egy visszaszámlálót. Gyakorlatiasabban, objektumok tömbje felett iterálhat, és minden egyes bejegyzéssel végrehajthat valamilyen műveletet.

A For ciklus (Loop)szintaxisa(Syntax) a PowerShellben(PowerShell)

A for ciklusok ugyanúgy működnek a Windows PowerShellben , mint bármely programozási nyelvben. (Windows PowerShell)A követési változót inicializáló, értékét tesztelő és a változót módosító kifejezések a „For” utáni zárójelek közé kerülnek, pontosvesszővel elválasztva. Aztán jön maga a kijelentéslista, amelyet göndör kapcsos zárójelek kötnek.

For ( Inicializálás(Initialization) ; Állapot(Condition) ; Frissítés(Update) )

{

    Script Block

}

A For ciklus(Loop) használata PowerShell-szkriptben(PowerShell Script)

A For ciklus használata meglehetősen egyszerű. Valahányszor olyan helyzettel találkozik, amely egy kissé változó lépés megismétlését igényli, tegye azt egy For ciklusba.

Tegyük fel, hogy írnod ​​kell egy kódrészletet, amely meg tudja találni az összes természetes szám összegét egy n számig(n) , amely a $n változóban található. Íme egy egyszerű For ciklus példa:

$n = 10

$összeg = 0

For ($i = 1 ; $i -le $n ; $i++)

{

    $összeg = $összeg + $i

}

"$n természetes szám összege $összeg"

Tömbök elérése For hurkon keresztül

A legtöbb ember aligha használja a PowerShellt(PowerShell) a numerikus sorozatok generálására . Egy gyakoribb használat az iteráció egy tömbön keresztül.

Tegyük(Say) fel, hogy van egy $hét tömbje hét elemmel. A tömbben lévő napok listáját egy egyszerű For ciklus segítségével adhatja ki, amint azt a következő példa bemutatja.

For ($i = 0 ; $i -lt $week.Length ; $i++)

{

    $hét[$i]

}

A ForEach hurok(ForEach Loop) használata egy tömb gyors iterációjához(Quickly Iterate)

A For ciklus másik formája a ForEach utasítás. Ez a verzió leegyszerűsíti a PowerShell(PowerShell) -tömb tartalmának áthaladását és azok egyenkénti feldolgozását. Az előző kódrészlet például átírható így:

Foreach ($hétben $nap)

{

    $nap

}

Bonyolultabb objektumok kezelésekor a Foreach-Object parancsmagot is használhatja bármely PowerShell - parancs tartalmára vonatkozó művelet végrehajtására.

Miben különbözik a For (Loops)hurok(Loop Different) a többi hurktípustól(Types) ?

A For ciklus nem az egyetlen rendelkezésre álló ciklusos utasítás. A legtöbb programozási nyelvhez hasonlóan a PowerShell is többféle hurokkal rendelkezik.

Míg

Ezek közül a legegyszerűbb a While ciklus. Csak egy feltétel és egy parancsfájl blokkja van, és a ciklus addig fut, amíg a tesztkifejezés igazra értékeli. Mivel a kifejezés először kerül kiértékelésre, előfordulhat, hogy a kód egyáltalán nem fut le, vagy végtelen ciklusként végződik. 

Míg ( állapot(Condition) )

{

    Script Block

}

Csinálni, miközben

Ha olyan szkriptet ír, amelynek legalább egyszer le kell futnia – még akkor is, ha a kifejezés kiértékelése false –, akkor használhatja a Do-While ciklust. Az egyetlen különbség a While ciklustól, hogy a parancsblokkot a feltétel elé helyezi, ami azt jelenti, hogy a kód a tesztkifejezés első ellenőrzése előtt fut le.

Tedd {

    Script blokk(Script block)

}

Míg ( állapot(Condition) )

Do-Amíg

Ennek a ciklusnak egy másik változata a Do-Until . Alapvetően(Basically) lefuttatja a kódblokkot, majd addig ismétli, amíg a tesztkifejezés igaz – a Do-While ciklus fordítottja. Nem különösebben hasznos struktúra, mivel ugyanezt elérheti a feltétel módosításával egy szabványos Do-While ciklusban.

Tedd {

    Script Block

}

Addig ( állapot(Condition) )

Miért jobb a For Loop?

Az összes többi hurkolt struktúrával az a probléma, hogy nem tartalmazzák a kezdeti értéket vagy a frissítési utasításokat. Manuálisan emlékeznie kell egy változó létrehozására a cikluson kívül, majd növelnie (vagy csökkentheti) azt a ciklus minden lépése során.

Ahogy az várható is, a programozók gyakran elfelejtik ezt a lépést, ami egy olyan szkripthez vezet, amely nem működik megfelelően. Ezzel értékes időt pazarol a hibakeresésre.

A For ciklus elkerüli ezt a problémát azáltal, hogy szükségessé teszi az inicializálást és a növekmény kifejezéseket a kezdő zárójelben. Ez tisztább, robusztusabb szkriptekhez vezet.

Mikor érdemes a For ciklust(Loop) használni a PowerShellben(PowerShell) ?

A PowerShell(PowerShell) az automatizáláshoz szükséges szkriptek létrehozásáról szól. És valószínűleg a leghasznosabb eszköz ennek elérésére a For ciklus. Használhatja számos másolás-beillesztés műveletet egy kompaktabb, elegánsabb szkriptre.

Ennek a ciklusnak a legáltalánosabb funkciója egy tömbön keresztüli iteráció, egyszerre egy bejegyzés. A még egyszerűbb szkripthez használhat egy ForEach ciklust is. A For hurkot is használhatja numerikus sorozatok generálására, bár erre ritkán van szükség.

A For hurok a többi hurkolási algoritmushoz képest pontoz azzal, hogy a ciklus összes lényeges funkcióját belefoglalja a paraméterekbe, megelőzve az ezen utasítások elfelejtéséből eredő hibákat. Ez a For ciklust nélkülözhetetlenné teszi minden olyan forgatókönyvben, amely parancskészlet megismétlését igényli.



About the author

Webfejlesztő vagyok, tapasztalattal a Firefox és a Google Docs területén. A Floridai Egyetemen szereztem diplomát üzleti adminisztrációból. Szakképzettségeim a következők: weboldalkészítés, tartalomkezelő rendszer (CMS), adatelemzés és felhasználói felület tervezés. Tapasztalt tanácsadó vagyok, aki segíthet csapatának hatékony webhelyek és alkalmazások létrehozásában.



Related posts