PowerShell Switch Case Yapısı Kullanımı
PowerShell Koşul İfadeleri, PowerShell Switch Case Kullanımı, PowerShell Switch Case Örnekleri

PowerShell Switch Case Yapısı Kullanımı
PowerShell Switch Case yapısı, PowerShell ile birden çok koşul kontrol edilmesi gerektiğinde kullanılır. PowerShell script programcılığında yaygın olarak kullanılan koşul ifadelerinden biri de “switch case” ifadeleridir. Sadece bir değişkenin değerinin durumuna bağlı olarak, değişkenin alacağı o değerin durumuna göre tek tek if else blokları yazmak yerine “switch case” ifadesi kullanılması daha çok tercih edilmektedir. “Switch case” ifadesi ile yapılabilecekleri aynı şekilde if else kullanarak da yapılabilir. Ancak uzun ve karmaşık kod satırları yerine düzenli switch case blokları kodların okunabilirliği için oldukça önemlidir.
PowerShell Switch Case ifadesi, “If” ifadeleri serisine eşdeğerdir ama kullanımı biraz daha kolaydır. Bu ifade, her bir koşulu ve her bir koşulla ilişkili blok kodunu listeler. Bir koşul “True” ise, kod bloğu söz konusu koşulla yürütülür.
“Switch case” yapısının çalışma mantığını bu makalede örneklerle anlatacağız. Öncelikle “switch” parantezi içerisindeki koşulun değeri hesaplanır. Hesaplanan değerle örtüşen bir case ifadesi bulunuyorsa, o blok içindeki kodlar çalıştırılır. Hiçbir case ile örtüşme sağlanmazsa, varsayılan blok altındaki kodlar çalıştırılır. Tıpkı C# dilinde olduğu gibi “break” ifadesi her case blok kodundan sonra kullanılmalıdır. Aksi durumda istenen kod blogu çalıştırılmış olmasına rağmen, “break” deyimi kullanılmaz ise switch içinde kalarak diğer case bloklarına doğru çalışmaya devam eder.
Bir script dosyasında çok sayıda koşul kontrolü ve bunların sonucuna göre gerçekleştirilmesi gereken işlemler varsa, if else yapıları ile akış durumunun izlenmesi kolay olmayabilir. Böyle durumlarda genellikle switch deyimi kullanılır. Switch komutu arka arkaya ele alınması gereken çok sayıdaki if komutu yerine daha sade script hazırlamak için kullanılır. Switch komutu if komutunun alternatifidir ancak if else yapısının sunduğu esnekliğe sahip değildir.
Switch Case İfadesi Sözdizimi
Switch (<Test-İfade>) <Koşul1> { Block-1 Kodu ; break } <Koşul2> { Block-2 Kodu ; break } <Koşul3> { Block-3 Kodu ; break } . . . <KoşulN> {Block-N Kodu ; break }
Switch deyimi için geçerli olan kurallar şunlardır:
- Varsayılan ifade isteğe bağlıdır. Varsayılan bir ifade olmasa bile Switch koşulu sorunsuz bir şekilde yürütülür.
- Test-İfade alanı mantıksal değer veya tamsayı bir ifade olabilir.
- Herhangi bir koşula break ifadesi uygulanırsa, switch ifadesi bu durumdan sonra çalışmasını sonlandırır.
Switch İfadesi Akış Şeması

PowerShell Switch Case Kullanım Örnekleri
Aşağıdaki örnekler switch ifadesinin nasıl kullanılacağını daha net açıklayacaktır:
Örnek 1
Bu örnekte, günün değeri sayısal değerlerden biri ile eşleşir.
PS C:\> $gun=3 PS C:\> switch($gun) >> { >> 1{echo "Günlerden Pazartesi"} >> 2{echo "Günlerden Salı"} >> 3{echo "Günlerden Çarşamba"} >> 4{echo "Günlerden Perşembe"} >> 5{echo "Günlerden Cuma"} >> 6{echo "Günlerden Cumartesi"} >> 7{echo "Günlerden Pazar"} >> }
Sonuç:
Günlerden Çarşamba
Örnek 2
Bu örnekte, değişkenin değerinin 10, 50 veya 100 olup olmadığını kontrol edilir. Bu değerlerden hiçbiri ile eşleşmezse, varsayılan ifade yürütülür.
PS C:\> $x=3 PS C:\> switch($x) >> { >> 10{echo "Parametre 10"} >> 50{echo "Parametre 50"} >> 100{echo "Parametre 100"} >> default {"Gelen parametre 10, 50 veya 100 değil."} >> }
Sonuç:
Gelen parametre 10, 50 veya 100 değil.
Örnek 3
Bu örnekte, switch ifadesinin birden fazla parametre ile birlikte nasıl kullanıldığını görebilirsiniz:
PS C:\> $m=4 PS C:\> $a=13 switch($m,$a) >> { >> 1{echo "Ocak"} >> 2{echo "Şubat"} >> 3{echo "Mart"} >> 4{echo "Nisan"} >> 5{echo "Mayıs"} >> 6{echo "Haziran"} >> 7{echo "Temmuz"} >> 8{echo "Ağustos"} >> 9{echo "Eylül"} >> 10{echo "Ekim"} >> 11{echo "Kasım"} >> 12{echo "Aralık"} >> Default { echo "Yanlış Seçim Yaptınız!"} >> }
Sonuç:
Nisan Yanlış Seçim Yaptınız!
Vakit ayırdığınız için teşekkür ederiz. “PowerShell Karşılaştırma Operatörleri” isimli makale de ilginizi çekebilir. PowerShell ile ilgili daha fazla bilgi için Microsoft sitesi ziyaret edilebilir.
Soru ve önerilerinizi aşağıdaki formu kullanarak bize iletebilirsiniz.
Hocam makale ve görseller gerçekten çok açıklayıcı ellerinize sağlık.
Teşekkür ederim
Çok teşekkürler, gayet açıklayıcı olmuş.
Ben teşekkür ederim. Faydalı olduysa ne mutlu.