1. Anasayfa
  2. Microsoft PowerShell

Sistemciler için PowerShell Öğreniyorum – Değişkenler – Bölüm 1


1

Tüm script dillerinde olduğu gibi PowerShell içerisinde de string ya da integer tabanlı nesneler istenilen değişkenlere atanarak, scriptin devam eden bölümünde ihtiyaç olduğunda rahatlıkla kullanılabilir.

Bunun size sağlayacağı yararı günlük hayattan birkaç örnek ile pekiştirebiliriz. Cep telefonu kullanmaya başlayan bir bireyin başlangıçta gerçekleştirdiği temel eylem, iletişimde olunan kişilerin telefon numaraları, mail adresleri gibi bilgileri, telefon rehberine İsim-Soyisim şeklinde kaydetmektedir. Böylece birisi aranmak istendiğinde telefon rehberinden ilgili kişinin isminin seçilmesi yeterlidir. Eğer başta bu tanımlamayı yaptıysanız, aynı telefonu kullandığınız süre boyunca o telefon numarasını ezberden çevirmenize gerek kalmayacaktır.


Resim-1

PowerShell içerisinde değişken kullanımı da bu örnekle paralel süreçler izlemektedir. Scriptin belirli bölümlerinde, scriptin devamında kullanılacak değerleri, hatırlanması ve kullanılması daha kolay değişkenlere atayarak, hem scripti yazan için, hem de scripti daha sonrasında inceleyecek olanlar için aydınlık bir yol çizilmiş olur. Değişken kullanımı script içerisinde kullanım kolaylığı sağlamak dışında, atanan değerleri birlikte kullanabilme noktasında da son derece esnek bir yapı oluşturmaktadır.

Örneğin hazırlanacak PowerShell scripti içerisinde, birçok noktada, yerel makinenizde bulunan C:\Windows\System32\config dizin bilgisi girilmesi gerektiğini düşünelim. Bu noktada script boyunca gerekli olan her satırda dizin bilgisi salt haliyle kullanılabilir.

Ya da;


Resim-2

Şeklinde bir tanım, scriptin başlangıcında yapılarak, ihtiyaç duyulan her noktada yalnızca $dizin değişkenini kullanarak daha etkili bir çözüm üretilebilir.

Değişkenlerin Özellikleri

PowerShell içerisinde değişken kullanımı için dikkat edilecek unsurlar ve gereksinimler adım adım incelenirse;

  • Değişken atamasını gerçekleştirmek için, belirlenen değişken isminin başına $ işareti konulması yeterlidir. PowerShell, $ işareti atanan bir metini otomatik olarak değişken olarak kabul edecektir.
  • Veri atanan bir değişkenin, atandığı değeri, metin tabanlı çıktı verebilmesi için, değişkenlerin ” (çift tırnak) içerisinde kullanılması gereklidir.

Örneğin yukarıdaki çıktı tek tırnak kullanımı ile gerçekleştirilseydi aşağıdaki gibi bir sonuç elde edilecekti.


Resim-3

Görüldüğü gibi tek tırnak kullanımında tanımlanan değişkenler, Shell tarafından ilgili değerleri çıktı olarak vermeyecektir.

  • $ işareti ile değişken tanımı yapıldıktan sonra, (=) işareti ile ilgili veri değişkene atanmaktadır.
  • Değişkenlerin veri tipleri, değişken başında kullanılan köşeli parantez ile belirlenebilir.

Veri tipleri ile ilgili aşağıdaki örneği inceleyelim.


Resim-4

Bu şekilde bir atama gerçekleştirip, ekrana $a çıktısı verildiğinde, PowerShell atanan değeri string olarak işleyecek ve size metin tabanlı bir şekilde “Anıl ERDURAN” değerini verecektir.

Aynı değer ataması, veri tipi integer olarak belirlenen bir değişkene atanmak istendiğinde,


Resim-5

Şeklinde bir hata alınacaktır. Hata içeriğinde görüldüğü gibi, $a değişkenine string değeri atanması gerekliyken, bu formata uymayan bir değer (Anıl ERDURAN) ataması yapılmaya çalışılmıştır.


Resim-6

Yukarıdaki örnekte, $numara değişkeni için veri tipi Byte olarak belirlenmiş ve 25 değeri atanmıştır.

Bir sonraki atamada ise 567 değeri atanmış, ancak shell tarafından, atanan değerin Byte veri tipi için sınırlandırılmış değerlerden daha büyük olduğu hatası verilmiştir. (Byte veri tipi 0-255 arası değerler alabilmektedir.)

Her zaman gerekli olmasa dahi, ileride değişkenlere farklı formatların atanmasını önlemek ve karışıklığın önüne geçmek için, değişken tanımında veri tipi ataması yapılabilir. Özellikle karmaşık scriptlerin dizaynında, tanımlanan değişkenler için veri tiplerinin belirlenmesi, ileride ortaya çıkacak hataların en aza indirgenmesinde dikkat edilmesi gereken bir noktadır. Integer olarak tanımlanması ve matematiksel hesaplamaya sokulması gereken bir değişkenin, PowerShell tarafından string olarak algılanması sonucunda, tüm script işleyişinde sıkıntılar meydana gelecektir.

Değişken tanımlarında kullanılabilecek veri tipleri aşağıdaki tabloda görülmektedir.


Resim-7

Çoğunlukla, bir değişkene atanan değerin veri tipini, PowerShell otomatik olarak tanıyarak ilgili atamayı gerçekleştirecektir. Ancak istenirse, değer atanmış bir değişken için ya da atama öncesi ilgili değerler için GetType().Name komutu kullanılarak veri tipi görüntülenebilir.


Resim-8

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

Bu İçeriğe Tepkin Ne Oldu?
  • 1
    harika_
    Harika!!
  • 1
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

İstanbul doğumlu ve Marmara Üniversitesi mezunudur. Mezuniyet sonrası kariyerine Bilge Adam Bilişim Teknolojileri Akademisi'nde Microsoft Certificated Trainer, Consultant ve Senior Consultant pozisyonlarında ve Data Market bünyesinde Danışmanlık Birim Müdürü olarak görev yapmaya başlamıştır. Microsoft bünyesinde tüm MEA bölgesindeki ülkelerde System Center ve Infrastructure projelerinden sorumlu Consultant olarak görev yaptıktan sonra, Aralık 2012 itibari ile KoçSistem bünyesinde danışman olarak çalışmaya başlamıştır. System Center Configuration Manager ürünü için 2010 ve 2011 yıllarında MVP (Microsoft Most Valuable Professional) ünvanı alan Anıl Erduran, 2013 yılında System Center Cloud & Datacenter Management alanında MVP seçilmiş ve uzun yıllar bu ünvanı korumayı başarmıştır. Şu anda Londra'da yaşayan Anıl Erduran AWS üzerinde çalışan Microsoft iş yüklerinden sorumlu EMEA Senior Partner Solutions Architect olarak çalışmaktadır.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumlar (1)

  1. Eline sağlık Anıl Hocam, çok yararlı bir yazı dizisi başlamış.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir