PowerShell

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 Yapısı Kullanımı
PowerShell Switch Case Yapısı Kullanımı

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.

Daha Fazla Göster

Ahmet Elibol

Üniversite eğitimini Kimya ve İşletme bölümlerinde tamamlayan Ahmet Elibol, yüksek lisans eğitimini de İşletme (Master of Business Administration - MBA) üzerinde tamamlamıştır. 1999 yılından bu yana bilişim sektöründe bulunmaktadır ve şu anda Rönesans Holding şirketinde CIO (Chief Information Officer) pozisyonunda görev yapmaktadır.  Ahmet Elibol, profesyonel kariyerine aldığı pascal ve delphi ile yazılım mühendisliği eğitimiyle başlamıştır. 2004 yılından sonra ilgi ve uzmanlık alanlarını Microsoft Sunucu Sistemleri, Sistem Programlama ve Bilgi Güvenliği konularında güncellemiştir. Yazar 4 yıl kadar bir akademide Sistem Mühendisliği eğitimleri vermiştir. Yazar hobi amaçlı programlama, yapay zeka, makine öğrenmesi, yapay sinir ağları, görüntü işleme ve nesnelerin interneti konularında çalışmaktadır. İngilizce, Rusça dillerini bilen Ahmet Elibol MCT, MCITP, MCTS, MCSE, MCSA vb. uzmanlık sertifikalarına sahiptir ve Bilgisayar Mühendisliği yüksek lisansına devam etmektedir.

İlgili Makaleler

4 Yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu