PowerShell

PowerShell Fonksiyon

PowerShell Fonksiyonlar, PowerShell Return, PowerShell Functions, PowerShell Basit ve İleri Düzey Fonksiyonlar

PowerShell Fonksiyon

Aynı kodun birden fazla defa kullanılması gerektiğinde, PowerShell fonksiyon yapısı kullanılır. Fonksiyon, adı kullanıcı tarafından atanan PowerShell deyimlerinin yani bir komut listesidir. Bir fonksiyon çalıştırılmak istendiğinde, o fonksiyonun adının yazılması yeterlidir.

Cmdlet’ler gibi, fonksiyonlar da parametre alabilirler. Fonksiyon parametreleri pipeline ile veya komut satırından okunabilir.

PowerShell Return Değeri

PowerShell fonksiyonları, değişkenlere ve cmdlet’lere atanabilen veya diğer işlevlere iletilebilen değerler döndürebilir. “Return” anahtar kelimesini kullanarak, geri dönüş değerini belirtebiliriz.

Sözdizimi

Aşağıdaki blok bir fonksiyon için sözdizimini açıklamaktadır:

function [<kapsam:>]<ad> [([tip]$parametre1[,[type]$parametre2])]
{
  param([tip]$parametre1 [,[tip]$parametre2])
  dinamikparametre {<ifade listesi>}
  başla {<ifade listesi>}
  işlem {<ifade listesi>}
  bitir {<ifade listesi>}
}

Yukarıdaki sözdizimi aşağıdaki terimleri içerir:

  • Bir “fonksiyon” kelimesi
  • Tarafınızdan verilen bir “ad”
  • Bir “kapsam” (isteğe bağlıdır)
  • Herhangi bir sayıda adlandırılmış “parametre”
  • Süslü parantez {} içine alınmış bir veya daha fazla PowerShell ifade listesi yani komutu.

PowerShell Fonksiyon Kapsamı

  • Bir fonksiyon, oluşturulduğu kapsamda bulunur ve çalışır.
  • Fonksiyon bir script içindeyse, yalnızca bu script içindeki ifadeler için kullanılabilir.
  • Global kapsamda bir fonksiyon tanımlandığında, bu fonksiyon diğer fonksiyonlarda, script ve komut satırında kullanılabilir.

Basit PowerShell Fonksiyonlar

Aşağıdaki örnek, bir PowerShell dilinde basit bir fonksiyonun nasıl oluşturacağını açıklar:

function <fonksiyon-adi>  
{  
    kod-1  
    kod-2  
    kod-N  
}

Fonksiyonda birden çok ifadeyi ayırmak için her biri ayrı satırda yazılmalıdır.

Fonksiyonu kullanmak için, fonksiyon adı yazılarak çağrılır:

fonksiyon-adi

Örnek:

function Mesaj  
{  
    echo "aktifdizin sitesine hoşgeldiniz!"
    echo "Aktif Dizin Servisi"
}

Yukarıdaki fonksiyonun çıktısını almak için PowerShell konsoluna aşağıdaki komutun yazılması yeterlidir:

Mesaj

Çıktı:

aktifdizin sitesine hoşgeldiniz!
Aktif Dizin Servisi

Gelişmiş PowerShell Fonksiyon Kullanımı

Gelişmiş fonksiyonlar, bir cmdlet ile benzer işlemleri gerçekleştirebilen fonksiyonlardır. Bu fonksiyonlar, kullanıcı hazır ve derlenmiş bir cmdlet kullanmak istenmediği durumlarda kullanılır.

Derlenmiş bir cmdlet ve gelişmiş bir fonksiyon kullanma arasındaki temel fark; derlenmiş bir cmdlet, sadece .NET Framework sınıfları ile yazılabilirken, gelişmiş fonksiyonlar PowerShell kod dilinde yazılmıştır.

Aşağıdaki örnekte PowerShell dilinde gelişmiş fonksiyonların nasıl yazılacağı açıklanmaktadır:

function Selamlama-Gonder  
{  
    [CmdletBinding()]  
    Param (  
        [ Parameter (Mandatory = $true)]  
        [string] $Ad  
    )  
 
    Process  
    {  
        Write-Host ("Merhaba " + $Ad + "!")  
    }  
}

Yukarıdaki örneğin çıktısını görebilmek için PowerShell konsoluna aşağıdaki komut yazılmalıdır:

Selamlama-Gonder

Çıktı:

cmdlet Selamlama-Gonder at command pipeline position 1
Supply values for the following parameters:
Ad: Ahmet Elibol
Merhaba Ahmet Elibol!

PowerShell Fonksiyon Örnekleri

Örnek 1:

Aşağıdaki örnek, geçerli tarihi döndüren basit bir fonksiyondur. Bu örnekte PowerShell return kullanımı da görülebilir:

function Get-DateTime 
{  
    return Get-Date  
}

Yukarıdaki örneğin çıktısını görebilmek için PowerShell konsoluna aşağıdaki komut yazılmalıdır:

Get-DateTime

Çıktı:

Saturday, February 8, 2020 12:46:56

Örnek 2:

Aşağıdaki örnek, bir parametreyi kabul eden ve bu parametre üzerinden bir değer döndüren bir fonksiyondur.

function Kare-Al([int]$x)
{
    $sonuc = $x * $x
    return $sonuc
}

Yukarıdaki örnekte kullanılmak üzere kullanıcıdan girdi olarak bir sayı almak için aşağıdaki komut yazılır:

$x = Read-Host 'Bir Sayı Giriniz'

Çıktı:

Bir Sayı Giriniz: 8

Fonksiyondan return ile dönen değeri, bir değişkende saklamak için aşağıdaki komut yazılır:

$kare = Kare-Al $x

Aşağıdaki komut sonucu gösterir:

Write-Output "$x * $x = $kare"

Çıktı:

2 * 2 = 4

Tümü:

function Kare-Al([int]$x)  
{  
    $sonuc = $x * $x  
    return $sonuc  
}

$x = Read-Host 'Bir Sayı Giriniz'

$kare = Kare-Al $x

Write-Output "$x * $x = $kare"

Çıktı:

PS C:\Users\ahmet> function Kare-Al([int]$x)  
{  
    $sonuc = $x * $x  
    return $sonuc  
}

$x = Read-Host 'Bir Sayı Giriniz'

$kare = Kare-Al $x

Write-Output "$x * $x = $kare"


Bir Sayı Giriniz: 4
4 * 4 = 16

PS C:\Users\ahmet>

PowerShell Fonksiyon

Makalesine ve örneklere zaman ayırdığınız için teşekkür ederiz. Fonksiyonlar içinde kullanmak üzere PowerShell If Kullanımı makalesi de ilginizi çekebilir. PowerShell hakkında daha fazla bilgi için Microsoft sitesi ziyaret edilebilir.

Etiketler
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

Bir cevap yazın

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

Başa dön tuşu
Kapalı
Kapalı