PowerShell Dizileri: Nasıl Oluşturulur ve Kullanılır


Değişkenler her türlü kodlama 'daki en temel veri yapısıdır. Ancak tek değişkenler çoğu amaç için yeterli değildir, özellikle de daha karmaşık algoritmalarla uğraşırken.

İşte burada diziler devreye giriyor. İster C++ ister Python olsun, diziler her programlama dilinde bir biçimde mevcuttur. Peki ya Windows PowerShell? PowerShell dizileri nasıl çalışır? Bunları nasıl kullanıyorsunuz? Bunların sözdizimi nedir? Hadi öğrenelim.

PowerShell Dizileri 101

Basitçe konuşursak, bir dizi değişkenlerin yapılandırılmış bir koleksiyonudur. Buradaki fikir, ilgili değişkenleri numaralı bir kümeye toplayarak düzinelerce adı takip etme zorluğunu ortadan kaldırmaktır.

PowerShell'de, değişken adının başına $ sembolünü ekleyerek bir değişken oluşturabilirsiniz. Örneğin:

$prime = 13

Değişken sayılardan dizelere kadar her türlü veri türünü içerebilir. Bir dize belirtmek için çift veya tek tırnak kullanmanız yeterlidir.

$name = “Levin”

Şimdi yeni bir dizi oluşturmak için aynı değişkene virgülle ayrılmış birden çok değer atamanız yeterlidir. Bunun gibi:

$hafta = “Pazartesi”, “Salı”, “Çarşamba”, “Perşembe”, “Cuma”, “Cumartesi”, “Pazar”

Bazı kişiler, karışıklığı önlemek için bir değişkeni açıkça bir diziye dönüştürmeyi tercih eder, ancak bu gerekli değildir. Bunu yapmak için değerleri, önünde @ sembolü bulunan parantezlerin içine koyun.

$hafta = @(“Pazartesi”, “Salı”, “Çarşamba”, “Perşembe”, “Cuma”, “Cumartesi”, “Pazar”)

Bu genellikle diğer komutların çıktısını, bunları manuel olarak doğru biçimde yazamayacağınız bir diziye yerleştirmeye çalıştığınızda kullanışlı olur.

Dizi Oluşturma

Dizi oluşturmanın en yaygın yöntemini zaten gördük. Ancak duruma bağlı olarak daha uygun olabilecek başka yollar da vardır. Örneğin, bir sayı aralığı içeren bir dizi oluşturmak istiyorsanız aralık operatörünü kullanabilirsiniz:

$rakamlar = (0..9)

Bu, sıfırdan dokuza kadar olan on rakamın tamamını içeren bir dizi oluşturacaktır. Daha sonra değerleri saklayacak bir yer isterseniz boş bir dizi de başlatabilirsiniz..

$değerler = @()

Birden fazla dizi iç içe bile yerleştirilebilir, ancak bu tür bir kullanım çok hızlı bir şekilde kafa karıştırıcı olabilir.

$koordinatlar = @(
    (5, 10, 23),
    (11, 7, 16)
)

Varsayılan olarak bir dizi, sayılar, dizeler veya her ikisinin karışımı gibi herhangi bir değişken türünü depolayabilir. Ancak içine konulan değerleri sınırlamak istemeniz durumunda, bir türü açıkça tanımlayabilirsiniz. Örneğin:

[int[]] $numbers = 2,3,4,5

Bu şekilde dizi yalnızca tam sayıları tutabilir. Buna başka herhangi bir değer türü atamaya çalışmak bir hata döndürecektir. Hesaplamalarda kullanılacak bir değişkene dize girilmesi sorunlara yol açacağından bu, yalnızca sayısal değerlerle çalışan dizilerde basit hataları önlemek için yararlı olabilir.

Dizilere Erişim

Şu ana kadar çeşitli veri türlerini içeren diziler oluşturmaya yönelik birden fazla yöntem gördük. Peki bu verilere nasıl erişeceksiniz?

PowerShell dizileri diğer programlama dilleri tarafından kullanılan formatın aynısını kullanır. Her dizi değişkenine indeks numarasıyla erişilebilir. Örneğin:

$var = $sayılar[5]

Bu, $vardeğişkenindeki $numbersdizisinin beşinci indeksinde saklanan değeri kopyalayacaktır. Dizi dizinlerinin 0'dan saymaya başladığını, dolayısıyla ilk öğeye sıfırla erişildiğini unutmayın.

Örneğin bunun çıktısını alacak olsaydık:

“$days[2]”

Salı değil Çarşamba günü alacağız.

Bu değerleri değiştirmek için de aynı yöntemi kullanabilirsiniz. Örneğin, aşağıdaki komut dizinin ikinci öğesini sıfıra değiştirecektir:

$sayılar[1] = 0

Mevcut girişlerin değerlerini yalnızca bir aritmetik ifade gibi ekleyerek değiştirmek yerine, mevcut bir diziye daha fazla öğe de ekleyebilirsiniz.

$names += “Johny”

Bu yöntem aynı anda birden fazla giriş, hatta dizilerin tamamını eklemek için de kullanılabilir.

$names += “Charlie, Liam, Teresa”

$isimler += $soyisimler

Virgülle ayrılmış yöntem, birden fazla dizi öğesine erişim için de geçerlidir. Örneğin bunu girdiğinizde $days'in ilk beş öğesi $weekdays'de saklanır..

$hafta içi = $gün[0,1,2,3,4]

Diziler Arasında Yineleme

Bir dizinin belirli öğelerine manuel olarak erişmek iyi ve güzel, ancak bir dizinin tüm içeriği üzerinde eylemler gerçekleştirmek istiyorsanız sıkıcı olabilir. Daha zarif bir yaklaşım ise For döngüsünü kullanmaktır.

For döngüleri bir dizinin tüm öğelerini sistematik olarak inceleyebilir ve her değeri talimatlara göre işleyebilir. Böyle bir döngüyü şu şekilde oluşturabilirsiniz:

($i = 0 ; $i -lt $days.Length ; $i++)
{

    $days[$i]

array.Length işlevi, temel olarak içindeki öğelerin sayısı olan dizinin boyutunu döndürür. Bu, tüm öğeleri kapsamlı bir şekilde yinelemek için For döngüsünün test ifadesi parametresine takılabilir.

Foreach döngüsü ve Foreach-object döngüsü, daha da yalın bir PowerShell betiğiyle aynı şeyi yapabilir.

Foreach ($days cinsinden $day)
{

    $day

Bu, sizi dizinin boyutunu belirleme zahmetinden kurtarır ve ayrıntıları PowerShell'e bırakır.

PowerShell Dizilerini Ne Zaman Kullanmalısınız

Karmaşık bir komut dosyasındaki hataların en büyük kaynağı, yanlış başvurulan değişkenlerdir. Bunun nedeni, benzersiz şekilde adlandırılmış çok sayıda değişkenin varlığıdır ve bu da bunların amaçlarını hatırlamayı zorlaştırır.

Bu soruna yönelik en basit düzeltme, dizileri kapsamlı bir şekilde kullanmaktır. Bir şekilde ilişkili tüm değişkenler tek bir diziye atanabilir ve dizin numaraları aracılığıyla erişilebilir.

Microsoft PowerShell'in başlıca kullanım alanı otomasyondur ve diziler bunda çok önemli bir rol oynar. PowerShell cmdlet'leri tarafından döndürülen nesneler dizilerde saklanabilir ve yinelenebilir. Bu, sıralı görevlerin otomatik olarak gerçekleştirilmesine olanak tanıyarak sistem yönetimini büyük ölçüde basitleştirir.

.

İlgili Mesajlar:


1.06.2022