İçeriğe geç

PowerShell Temelleri: Döngülerle Programlama

    1651882981

    Bu PowerShell eğitiminde size For döngüsü, ForEach-Object döngüsü ve while, Do-While ve Do-Until döngülerinin nasıl kullanılacağını gösteriyoruz.

    PowerShell döngüleri, en temel haliyle, aynı komut dizisini belirli sayıda tekrarlamanız yeterlidir. Belirli bir süre veya belirli sayıda kayıt için tutarlı eylemler gerçekleştirmek için ideal olan döngüler, komut dosyalarınızı büyük ölçüde basitleştirebilir. Özellikle PowerShell, çok sayıda benzer veri içeren nesneleri döndüren, özellikle Get fiiliyle başlayanlar olmak üzere bir dizi cmdlet’e sahiptir.

    PowerShell’de birkaç tür döngü vardır ve çoğu durumda birden fazla döngü tekniği etkin bir şekilde kullanılabilir. Bazen performans veya kod okunabilirliği açısından en verimli döngü tipini belirlemek gerekir.

    ForEach-Nesne Döngüsü

    Çoğu durumda ForEach-Object cmdlet’ini kullanmak (daha önce PowerShell nesneleriyle çalışma hakkındaki makalemizde tartışılmıştır), bir nesne arasında döngü oluşturmanın en iyi yoludur. En basit haliyle, ForEach-Object yalnızca döngülenecek bir nesne ve nesnenin her bir üyesi üzerinde gerçekleştirilecek komutları içeren bir komut dosyası bloğu gerektirir.

    Bu parametreler, -InputObject ve -Process parametre adlarıyla veya nesneyi ForEach-Object cmdlet’ine yönlendirerek ve komut dosyası bloğunu ilk parametre olarak yerleştirerek belirtilebilir. Bu temel sözdizimini göstermek için aşağıdaki örnek, bir kullanıcının Belgeler klasörünün içeriği arasında döngü yapmak için ForEach-Object kullanmanın iki yöntemini gösterir:

    $myDocuments = Get-ChildItem $env:USERPROFILEDocuments -Dosya $myDocuments | ForEach-Object {$_.FullName} ForEach-Object -InputObject $myDocuments -Process {$_.FullName}

    Belirli senaryolarda, döngü gerçekleştirilmeden hemen önce veya hemen sonra bir veya daha fazla eylemi gerçekleştirmek faydalı olabilir. -Begin ve -End parametreleri, -Process komut dosyası bloğunun içeriğinden hemen önce veya sonra yürütülecek komut dosyası bloklarını tanımlamak için kullanılabilir. Bu, döngünün yürütülmesinden önce veya sonra bir değişkeni ayarlamak veya değiştirmek için kullanılabilir.

    ForEach-Object’in ForEach ve % olmak üzere iki takma adı vardır ve ayrıca PowerShell 3.0’dan başlayarak kısa yol sözdizimini destekler. Aşağıdaki üç örnek işlev olarak aynıdır.

    Get-WMIObject Win32_LogicalDisk | ForEach-Object {$_.FreeSpace} Get-WMIObject Win32_LogicalDisk | ForEach {$_.FreeSpace} Get-WMIObject Win32_LogicalDisk | % Boş alan

    Döngü için PowerShell

    For döngüleri tipik olarak, bir dizi veya nesnede ilerlemek için veya yalnızca gerektiği gibi aynı kod bloğunu tekrarlamak için bir dizi komutu belirtilen sayıda yinelemek için kullanılır. For döngüsü, döngüye girerken bir değişkenin değeri, döngünün sonlandırılacağı koşul ve döngü boyunca her seferinde bu değişkene karşı gerçekleştirilecek bir eylem ayarlanarak oluşturulur.

    Aşağıdaki örnek, çarpım tablosu oluşturmak için kullanılan temel bir For döngüsünü göstermektedir:

    ($i=0; $i -le 10; $i++) { “10 * $i = ” + (10 * $i) } için

    For döngüleri, başlangıç ​​değerini dizinin ilk dizinine ayarlayarak ve dizi uzunluğuna ulaşılana kadar değeri kademeli olarak artırarak dizi değerleri arasında ilerlemek için kullanılabilir. Dizi dizini, artan değişken, aşağıdaki örnekte gösterildiği gibi, değişken adının hemen ardından köşeli parantez içine yerleştirilerek belirtilir:

    $renkler = @(“Kırmızı”,”Turuncu”,”Sarı”,”Yeşil”,”Mavi”,”Çivit”,”Mor”) İçin ($i=0; $i -lt $renk.Uzunluk; $ i++) { $renkler[$i] }

    while, Do-While ve Do-Until Döngüleri

    PowerShell’in desteklediği üçüncü bir döngü türü, koşul doğru olduğu sürece veya karşılanana kadar döngünün işlemesine izin veren bir koşul ayarlamayı içerir. while ve Do-While döngüleri, koşul $true olarak değerlendirilirken bir eylemi gerçekleştirmek için kullanılır ve yalnızca sözdizimlerinde farklılık gösterir. Do-Until döngüleri Do-While ile benzer sözdizimine sahiptir, ancak koşul ifadesi karşılandığında işlemeyi durdurur.

    Do-While ve Do-Until döngülerinin her ikisi de bir komut dosyası bloğunun önüne gelen Do anahtar sözcüğüyle başlar, ardından koşul anahtar sözcüğü (While veya Bitene kadar) ve koşul gelir. Örnek olarak, aşağıdaki iki döngü aynı şekilde çalışır, yalnızca koşul tersine çevrilir:

    $i=1 Yap { $i $i++ } while ($i -le 10)$i=1 Yap { $i $i++ } Kadar ($i -gt 10)

    Döngüler Do-While döngüleriyle aynı şekilde çalışırken, yalnızca sözdizimi biraz değiştirilir. Döngüler yalnızca while anahtar sözcüğünü, ardından koşulu ve son olarak komut dosyası bloğunu kullanır. Bu döngü, önceki örneklerle işlev olarak aynıdır ve Do-While döngüsüyle aynı koşulu kullanır:

    $i=1 iken ($i -le 10) { $i $i++ }

    Bu üç döngü türünden herhangi biri — Do-While, Do-Until ve While döngüleri — süresiz olarak döngü yapmak için de kullanılabilir; while ve Do-While, koşul $true olarak ayarlanmış ve Do-Until, koşul $false olarak ayarlanmış olarak döngüler yapar.

    Bazı durumlarda, döngü koşulundan başka bir şeye bağlı olarak bir döngüden erken çıkmanız gerekebilir. Bu durumda, döngüden çıkmak için Break anahtar sözcüğü çağrılabilir. Bu son örnek aynı işlevi gösterir, ancak uygun zamanda çıkmak için sonsuz bir döngü ve Break anahtar sözcüğünü kullanır:

    $i=1 iken ($true) { $i $i++ if ($i -gt 10) { Break } }

    İLİŞKİLİ:

    PowerShell Karşılaştırma Operatörleri ve Koşullu Mantık
    PowerShell: Değişkenleri, Dizileri ve Hashtable’ları Kullanma
    PowerShell Temelleri: Dosyaları ve Klasörleri Yönetme

    0 0 votes
    Rating post
    Subscribe
    Bildir
    guest
    0 comments
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x