PowerShell Fonksiyonlari Icindeki Gelismis Parametreler – 5 – AllowEmptyCollection Ozelligi

Collection tipindeki bir parametre degerinin bos olarak tanimlanmasina izin verir.

function test4 {
Param(
    [Parameter(Mandatory)]
    [string[]]
    $isimler
)
write-host $isimler
}
###

function test4 {
    Param(
        [Parameter(Mandatory)]
        [AllowEmptyCollection()]
        [string[]]
        $isimler
    )
    
    write-host $isimler
}
Continue Reading PowerShell Fonksiyonlari Icindeki Gelismis Parametreler – 5 – AllowEmptyCollection Ozelligi

PowerShell ile Fonksiyon Islemleri – 10 – Fonksiyonlar Icinde Belirli Kosullara Gore Dinamik Parametreler Kullanmak

Fonksiyon parametrelerinin baska parametrelerin degerlerine gore aktif olup olmamasi saglanabilir. Ornegin sayi parametresine verilen deger 4’ten buyukse, sayi2 parametresini kullanabilmeye izin vermek mumkundur, Bu durumda eger Sayi parametresinin degeri 4’ten kucukse sayi2 parametresi devredisi kalir ve kullanici bu parametreyi fonksyion icinde kullanamaz.

function Dinamik-Sayilar {
    [CmdletBinding()]
    Param([string]$sayi)
  
    DynamicParam
    {
      if ($sayi -gt 4 )
      {
        $parameterAttribute = [System.Management.Automation.ParameterAttribute]@{
            ParameterSetName = "Set1"
            Mandatory = $false
        }
  
        $attributeCollection = [System.Collections.ObjectModel.Collection[System.Attribute]]::new()
        $attributeCollection.Add($parameterAttribute)
  
        $dynParam1 = [System.Management.Automation.RuntimeDefinedParameter]::new(
          'sayi2', [Int32], $attributeCollection
        )
  
        $paramDictionary = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new()
        $paramDictionary.Add('sayi2', $dynParam1)
        return $paramDictionary
      }
    }
    process {$sonuc = $sayi+$sayi2
    $sonuc
    }
  }
Continue Reading PowerShell ile Fonksiyon Islemleri – 10 – Fonksiyonlar Icinde Belirli Kosullara Gore Dinamik Parametreler Kullanmak

PowerShell Fonksiyonlari Icindeki Gelismis Parametreler – 4 – AllowEmptyString Ozelligi

Bir parametre degerinin bos string olarak atanabilmesine izin verir.

function test2 {
Param(
    [Parameter(Mandatory)]
    [string]
    $isim
)
write-host $isim
}

function test2 {
    Param(
        [Parameter(Mandatory)]
        [AllowEmptyString()]
        [string]
        $isim
    )
    
    write-host $isim
}
Continue Reading PowerShell Fonksiyonlari Icindeki Gelismis Parametreler – 4 – AllowEmptyString Ozelligi

PowerShell ile Fonksiyon Islemleri – 9 – Fonksiyonlar icinde ArgumentCompletions ile Parametre Degerlerini Otomatik Tamamlatmak

Bir fonksiyonunu parametre degerlerinin dinamik bir sekilde belirlenmesini saglar. Ornegin bir fonksiyon icinde dosyaAdi ismindeki degiskenin degerinin, spesifik bir klasor icindeki dosyalarin isimlerinden biri olarak kullanilmasini isteyebiliriz.

function Dosya-Bul {
    Param(
        [Parameter(Mandatory)]
        [ArgumentCompleter( {
            param ( $commandName,
                    $parameterName,
                    $wordToComplete,
                    $commandAst,
                    $fakeBoundParameters )
            Set-Location C:\temp
            (Get-ChildItem | select name).name
        } )]
        $dosyaaadi
    )
}
Continue Reading PowerShell ile Fonksiyon Islemleri – 9 – Fonksiyonlar icinde ArgumentCompletions ile Parametre Degerlerini Otomatik Tamamlatmak

PowerShell Fonksiyonlari Icindeki Gelismis Parametreler – 3 – AllowNull Ozelligi

Bir parametre degerinin null olarak verilip verilemeyeceginin belirlendigi ozelliktir. Asagiki ilk ornekte bu ozellik kapali, digerinde ise aciktir. AllowNull ozelligi sayesinde “isimler” adli degiskenin degerini Null olarak belirleyebilirsiniz.

function test1 {
Param(
    [Parameter(Mandatory)]
    [AllowNull()]
    [hashtable]
    $isimler
)
write-host $isimler
}

function test1 {
    Param(
        [Parameter(Mandatory)]
        [hashtable]
        $isimler
    )
    
    write-host $isimler
    
}
    
    
    
Continue Reading PowerShell Fonksiyonlari Icindeki Gelismis Parametreler – 3 – AllowNull Ozelligi

PowerShell ile Fonksiyon Islemleri – 8 – Fonksiyonlar icinde ValidateSet ile Zorunlu Parametre Degerleri Belirlemek

Bir parametrenin alcacagi degerleri onceden fonksiyon icine tanimlarsaniz, o degerler disinda bir degerin kullanici tarafindan verilememesini saglarsiniz. Boylece kullaniciya sadece belirli opsiyonlar icinden secim yapma sansi tanimis olursunuz.

function Meyve-Sec {
Param(
    [Parameter(Mandatory)]
    [ValidateSet("Elma", "Armut", "Karpuz")]
    [string[]]
    $Meyve
)
write-host "$meyve meyvesini sectiniz"
}
Continue Reading PowerShell ile Fonksiyon Islemleri – 8 – Fonksiyonlar icinde ValidateSet ile Zorunlu Parametre Degerleri Belirlemek

PowerShell ile Fonksiyon Islemleri – 7 – Fonksiyonlar icinde Parametre Setleri Kullanmak

Bir fonksiyon icinde birden fazla parametre seti kullanabilirsiniz. Boylece kullanici, fonksiyonucagirirken hangi parametreleri kullanmissa ona gore ilgili islemleri dinamik olarak yaptirabilirsiniz. Ornegin bir fonksiyon icinde 3’u bir set, diger 4’u ayri set icinde olmak uzere toplam 7 adet parametre varsa, kullanici bu iki setten birini secerek parametrelerini vermek durumundadir. Boylece verilen parametrelere gore PowerShell ilgili fonksiyonu cagirir.

function fonksiyon1 {
    param (
        [Parameter(ParameterSetName = 'isimler')]$isim,
        [Parameter(ParameterSetName = 'isimler')]$soyisim,
        [Parameter(ParameterSetName = 'kompleIsim')]$kompleIsim
    )
   
        
    
 if($kompleIsim){
    write-host "Komple isim parametresini kullanmissiniz. Tam isminiz: $kompleIsim"
 }else{
    write-host "Adinizi ve Soyadinizi ayri ayri parametreler seklinde vermissiniz. Adiniz: $isim, soyadiniz ise: $soyisim"
 }   

}
Continue Reading PowerShell ile Fonksiyon Islemleri – 7 – Fonksiyonlar icinde Parametre Setleri Kullanmak

PowerShell ile Fonksiyon Islemleri – 6 – Fonksiyon icinde ValueFromPipelineByPropertyName kullanmak

Fonksiyon parametre degerinin pipeline icindeki baska bir parametrenin degeri olarak kullanilmasini da saglayabiliriz. Bunun icin pipeline icindeki (sol taraftaki komut) komutun parametre ismi ile fonksiyon icindeki parametre isminin ayni olmasi gerekir. Ornegin; Get-Service komutunu pipeline’nin sol tarafinda belirtirsek ve -Name parametresini kullanirsak, buradaki Name degeri, pipeline’nin sag tarafinda bizim cagirdigimiz fonksiyonun de Name degeri olarak kullanilacak demektir. Eger fonksiyon icinde Name yerine baska bir parametre ismi kullanirsam PowerShell hata verecektir. Cunku onun aradigi isim Name’dir.

function Get-ServiceDetails{
Param(
    [Parameter(Mandatory,
    ValueFromPipelineByPropertyName)]
    [string[]]
    $Name
)
$name
}
Continue Reading PowerShell ile Fonksiyon Islemleri – 6 – Fonksiyon icinde ValueFromPipelineByPropertyName kullanmak

PowerShell ile Fonksiyon Islemleri – 5 – Fonksiyon icinde Zorunlu Parametreler

Bir fonksiyonunun parametrelerini zorunlu hale getirmek istersek, parametrenin Mandatory ozelligini kullanabiliriz. Boylece bir fonksiyon cagrilirken ilgili parametrelerin mecburi olarak verilmesi saglanabilir.

function Hesap-Yap
{
    [CmdletBinding()]
    Param(
        [Parameter(Mandatory=$true)]
        $sayi1,
        [Parameter(Mandatory=$true)]
        $sayi2
    )
    Process
    {
        $sonuc = $sayi1 + $sayi2
        Write-Host ("Sonuc " + $sonuc )    }
}
Continue Reading PowerShell ile Fonksiyon Islemleri – 5 – Fonksiyon icinde Zorunlu Parametreler

PowerShell ile Fonksiyon Islemleri – 3 – Fonksiyon icinde baska bir fonksiyon olusturmak ve cagirmak

Bir fonksiyon icinde onceden tanimlanmis baska bir fonksiyonun cagrilmasi da mumkundur.

function yardimciFonksiyon {
    param(
        $a,
        $b
    )
    $c = $a + $b
    return $c
}
function yeniFonksiyon {
    param(
        $d,
        $e
    )
    $f = $d + $e + (yardimciFonksiyon -a 15 -b 25)
    write-host "sonuc $f"
}

Yukaridaki ornekte asil fonksiyon (yeniFonksiyon) icinde baska bir fonksiyonu daha cagiriyoruz. Script icinde yardimciFonksiyon daha once tanimlandigi icin, ana fonksiyon onu taniyor ve ilgili komutlari arka planda calistiriyor.

Continue Reading PowerShell ile Fonksiyon Islemleri – 3 – Fonksiyon icinde baska bir fonksiyon olusturmak ve cagirmak