PowerShell Dizisi Parametreleri [Kılavuzun Tamamı]


Bazen bir diziyi PowerShell'deki bir işleve parametre olarak aktarmanız gerekebilir. Bu eğitimde PowerShell dizi parametreleri hakkında her şeyi açıklayacağım. PowerShell fonksiyonlarında dizilerin parametre olarak nasıl kullanılacağını birkaç örnekle inceleyeceğiz.

PowerShell Dizi Parametreleri

PowerShell'de diziler esnektir; tamsayılar, dizeler, nesneler ve hatta diğer diziler dahil her türden öğeyi tutabilirler.

PowerShell'de bir dizi bildirmek için bir değişkene virgülle ayrılmış birden çok değer atamanız yeterlidir:

$myArray = 1, 2, 3, 4, 5

Bu kod satırı, beş tam sayı öğesi içeren bir $myArray dizisi oluşturur.

PowerShell'de Bir Diziyi Bir İşleve Aktarmak

PowerShell'deki bir işleve bir dizi aktarmak istediğinizde özel bir şey yapmanıza gerek yoktur; dizi değişkenini diğer parametrelerde olduğu gibi iletmeniz yeterlidir. Aşağıda dizi parametresini kabul eden bir fonksiyon örneği verilmiştir:

function Show-ArrayContents {
    param([array]$numbers)
    foreach ($number in $numbers) {
        Write-Host $number
    }
}

$myArray = 1, 2, 3, 4, 5
Show-ArrayContents -numbers $myArray

Bu örnekte, Show-ArrayContents işlevi bir dizi olması beklenen $numbers parametresini alır. İşlev daha sonra dizideki her öğeyi yineler ve onu ana bilgisayara yazdırır.

PowerShell betiğini VS kodunu kullanarak çalıştırdıktan sonra çıktıyı aşağıdaki ekran görüntüsünde görebilirsiniz.

İşlevler İçinde PowerShell Dizilerini Değiştirme

Bir diziyi bir fonksiyona ilettiğinizde orijinal diziye bir referans ilettiğinizi anlamak önemlidir. Bu, fonksiyon içindeki diziyi değiştirirseniz bu değişikliklerin fonksiyonun dışına da yansıtılacağı anlamına gelir. İşte bir örnek:

function Add-Element {
    param([array]$numbers)
    $numbers += 6
}

$myArray = 1, 2, 3, 4, 5
Add-Element -numbers $myArray
Write-Host $myArray

Add-Element işlevi orijinal diziye bir öğe eklediğinden bu, 1 2 3 4 5 6 çıktısını verecektir.

PowerShell İşlevinden Dizileri Döndürme

PowerShell'deki işlevler de dizileri döndürebilir. Bu, bazı mantığa dayalı olarak bir öğe listesi oluşturmanız ve ardından bu listeyle işlevin dışında çalışmanız gerektiğinde kullanışlıdır. İşte bir örnek:

function Get-MultiplesOfTwo {
    param([int]$maxNumber)
    $multiples = @()
    for ($i = 2; $i -le $maxNumber; $i += 2) {
        $multiples += $i
    }
    return $multiples
}

$multiplesOfTwo = Get-MultiplesOfTwo -maxNumber 10
Write-Host $multiplesOfTwo

Bu işlev, belirtilen maksimum sayıya kadar ikinin katlarından oluşan bir dizi döndürür.

Gelişmiş Dizi Parametreleri

PowerShell ayrıca tek bir değeri veya bir değerler dizisini kabul edebilecek bir parametre tanımlamanıza da olanak tanır. Bu, parametre için [object[]] türü kullanılarak yapılır. İşte bir örnek:

function Display-Messages {
    param([object[]]$messages)
    foreach ($message in $messages) {
        Write-Host $message
    }
}

Display-Messages -messages "Single message"
Display-Messages -messages "First message", "Second message"

Bu durumda, Görüntü Mesajları tek bir nesneyle veya bir dizi nesneyle çağrılabilir.

Çözüm

Bu PowerShell eğitiminde PowerShell dizi parametreleri ile ilgili her şeyi örneklerle detaylı bir şekilde anlattım.

İlgili makaleler