0

Bu bölümde diğer yazılım dillerinden aşina olunan ve karmaşık scriptleri basitleştiren bir yöntem olan fonksiyon kullanımına değinilecektir.

Fonksiyonun temel amacı script içerisinde kullanacağınız kod bloğuna bir isim vermektedir. Bu sayede değişkenlerde olduğu gibi, oluşturulan fonksiyon yine sizin belirlediğiniz isim ile scriptin içerisinde bir veya birden fazla kez çağırılabilir.

PowerShell içerisinde fonksiyon oluşturabilmek için gerekli olan Kullanım Biçimi bilgisi aşağıdaki gibidir;


Resim-1

Function
FonksiyonIsmi (Parametreler) {Script Bloğu}

Yukarıdaki Kullanım Biçimi bilgisinde görüldüğü gibi herhangi bir fonksiyonu oluşturmak için Function anahtar kelimesinin kullanılması gerekmektedir. PowerShell içerisinde girilen bu anahtar kelime ile konsol bir fonksiyon oluşturma aşamasında olduğunu anlayacak ve fonksiyon ismi bilgisi girilmesini bekleyecektir.

FonksiyonIsmi script içerisinde sınırları belirlenmek istenen kod bloğuna verilecek isimdir. Bu noktada ilgili kod bloğunu anlaşılır biçimde tanımlayacak isimler verilmesi, fonksiyonun karmaşık scriptlerde kullanılmasını kolaylaştıracaktır.

Parametreler seçeneğe bağlı olarak fonksiyonlar ile birlikte kullanılabilir. Herhangi bir parametreye sahip olmayan bir fonksiyon oluşturulduğunda yalnızca fonksiyon isminin kullanılması ilgili kod bloğunun olduğu gibi çalıştırılmasını sağlayacaktır. Örneğin statik bir ip numarasının pinglenmesi için bir fonksiyon yazılabilir. Böylece yalnızca fonksiyonun ismi PowerShell konsolunda girilerek ilgili IP’nin pinglenmesi sağlanır. Ancak parametre kullanımı ile fonksiyon içerisinde kullanılan ip numarasına bir değişken atanır ve fonksiyon bu parametre ile çalıştırılabilir. Böylece ping işlemini gerçekleştirecek fonksiyon ismi ve ardından ip numarası yazılarak istenilen ip numarasına ping atılabilir.

Script Bloğu fonksiyon içerisinde kullanılmak istenen kodları barındıran bölümdür. Fonksiyon oluşturulurken köşeli parantez içerisine yerleştirilen tüm değerler, fonksiyon ismi çağrıldığında parametreleri ile birlikte çalıştırılacaktır.

Fonksiyon kullanımının genel özellikleri incelendiğine göre başlangıç seviyesi örneklere geçilebilir;


Resim-2

İlk örnekte temel bir fonksiyon oluşturulmuştur. Geri ismi verilen bu fonksiyona köşeli parantez kullanımı ile PowerShell konsolunun tanımlayabileceği script bloğu yerleştirilmiştir. Bilindiği gibi cd.. komutu PowerShell içerisinde de desteklenmekte ve konsol içerisinde bir geri dizine geçiş yapmak için kullanılmaktadır.

Örnek üzerinde görüldüğü gibi PowerShell konsolu içerisinde bir fonksiyon tanımlandığında size herhangi bir çıktı verilmeyecektir. Bu andan itibaren yalnızca fonksiyon ismi kullanılarak ilgili script bloğu çağırılır.

PowerShell içerisinde fonksiyona atanabilecek tüm değerleri içeren varsayılan bir argument bulunmakta ve $args değişkeni içerisinde saklanmaktadır.


Resim-3

şeklinde oluşturulan bir fonksiyonda $args değişkeni belirtildiği için kullanıcı bu değeri fonksiyon ismi ile birlikte kullanabilir durumda olacaktır.


Resim-4

Birden Fazla Argument Kullanımı

Fonksiyon içerisinde argument kullanarak kullanıcıdan değer alınabileceğinden bahsetmiştik. Bu noktada birden fazla argument kullanıldığı takdirde bu argumentlerin fonksiyon içerisinde tanımlanması için virgül-liste kullanılabilir.

Aşağıdaki örnekte iki değişken (argument) kullanılarak kullanıcıdan fonksiyon içerisinde kullanılmak üzere iki farklı değer istenmektedir.


Resim-5

Carpma isminde oluşturulan fonksiyonda iki farklı değer tanımlanmıştır. Fonksiyon içerisinde ki kod bloğunda ise bu iki değerin çarpılması gerektiği belirtilerek fonksiyon tamamlanmıştır. Fonksiyon kullanıldığı takdirde aşağıdaki gibi bir çıktı üretecektir.


Resim-6

Fonksiyon kullanımı sırasında gerekli parametreler oluşturularak kullanıcının bu parametreleri kullanarak değişkenlere değer atamaları sağlanabilir. Aşağıdaki örnekte parametre kullanımı incelenmiştir;


Resim-7

Parametreler isminde oluşturulan fonksiyon içerisindeki kod bloğunda param kullanılarak parametre tanımlaması başlatılmıştır.

Param kullanımı sonrasında parantez içerisinde yer verilen değişkenler, script çalıştırıldığında parametre olarak kullanılabilecektir.

Bu örnekte aynı zamanda değişkenlere statik değerler atanarak parametre kullanımı olmadan da fonksiyonun döndüreceği sonuçlar incelenecektir.

Yukarıdaki fonksiyon hiçbir parametre olmadan çalıştırıldığı takdirde aşağıdaki çıktı elde edilir;


Resim-8

Görüldüğü gibi parametre kullanımı olmadığı takdirde $ilksayı ve $sonsayi statik değerleri çarpma işlemine sokularak sonuç ekrana yansıtılmıştır.


Resim-9

Fonksiyon içerisinde param kullanıldığı için ilksayi ve sonsayi değerlerine, herhangi bir PowerShell komutuna parametre ekler gibi ( – işareti ile ) değer kullanıcı tarafından eklenebilir. Bu takdirde fonksiyon içerisindeki kod bloğu kullanıcıdan parametre yardımı ile alınan değerler üzerinde çarpma işlemi gerçekleştirecektir.

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?
  • 2
    harika_
    Harika!!
  • 0
    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