Aracılığıyla paylaş


Fonksiyon Sağlayıcı Hakkında

Sağlayıcı adı

Fonksiyon

Drives

Function:

Capabilities

İşlem Yapmalı

Kısa açıklama

PowerShell'de tanımlanan işlevlere erişim sağlar.

Ayrıntılı açıklama

PowerShell İşlevi sağlayıcısı, PowerShell'deki işlevleri ve filtreleri almanıza, eklemenize, değiştirmenize, temizlemenize ve silmenize olanak tanır.

İşlev, bir eylem gerçekleştiren adlandırılmış kod bloğudur. İşlev adını yazdığınızda işlevdeki kod çalışır. Filtre, bir eylem için koşullar oluşturan adlandırılmış bir kod bloğudur. Koşul yerine filtrenin adını yazabilirsiniz, örneğin bir Where-Object komutunda.

İşlevi sürücüsü, yalnızca işlev ve filtre nesnelerini içeren düz bir ad alanıdır. İşlevlerin veya filtrelerin alt öğeleri yoktur.

İşlevi sağlayıcısı, bu makalede ele alınan aşağıdaki cmdlet'leri destekler.

Bu sağlayıcı tarafından kullanıma sunulan türler

Her işlev, System.Management.Automation.FunctionInfo sınıfının bir örneğidir. Her filtre, System.Management.Automation.FilterInfo sınıfının bir örneğidir.

İşlevi sağlayıcısı veri deposunu Function: sürücüsünde kullanıma sunar. İşlevlerle çalışmak için konumunuzu Function: sürücüsüne (Set-Location Function:) değiştirebilirsiniz. Alternatif olarak, başka bir PowerShell sürücüsünden de çalışabilirsiniz. Başka bir konumdan bir işleve başvurmak için yoldaki sürücü adını (Function:) kullanın.

Set-Location Function:

Bir dosya sistemi sürücüsüne dönmek için sürücü adını yazın. Örneğin, şunu yazın:

Set-Location C:

Ayrıca başka bir PowerShell sürücüsünden İşlevi sağlayıcısıyla da çalışabilirsiniz. Başka bir konumdan bir işleve başvurmak için yoldaki sürücü adını Function: kullanın.

Not

PowerShell, sağlayıcı yollarıyla çalışmayı tanıdık hale getirmek için takma adlar kullanır. ve gibi komutlar artık Get-ChildItemiçin diğer adlardır, ise Set-Location için bir diğer addır ve Get-Locationiçin bir diğer addır.

İşlevleri alma

Bu komut geçerli oturumdaki tüm işlevlerin listesini alır. Bu komutu herhangi bir PowerShell sürücüsünden kullanabilirsiniz.

Get-ChildItem -Path Function:

İşlev sağlayıcısının kapsayıcısı yoktur, bu nedenle yukarıdaki komut Get-ChildItemile kullanıldığında aynı etkiye sahiptir.

Get-ChildItem -Path Function:

aşağıda gösterildiği gibi Tanımı özelliğine erişerek işlevin tanımını alabilirsiniz.

(Get-Item -Path Function:more).Definition

Ayrıca, bir işlevin tanımını dolar işareti ($) ön ekli sağlayıcı yolunu kullanarak da alabilirsiniz.

$Function:more

Adında tire (-) bulunan bir işlevin tanımını almak için, dolar işaretinden sonraki değeri küme ayraçlarına alın.

${Function:Clear-Host}

Seçilen işlevleri edinme

Bu komut man sürücüsünden Function: işlevini alır. İşlevi almak için Get-Item cmdlet'ini kullanır. İşlem hattı operatörü (|), sonucu Format-Table'e gönderir. -Wrap parametresi, satıra sığmayan metni bir sonraki satıra yönlendirir. -AutoSize parametresi, metni sığdırmak için tablo sütunlarını yeniden boyutlandırır.

Get-Item -Path man | Format-Table -Wrap -AutoSize

Fonksiyon sağlayıcı yollarıyla çalışma

Bu komutların her ikisi de C:adlı işlevi alır. İlk komut herhangi bir sürücüde kullanılabilir. İkinci komut Function: sürücüsünde kullanılır. Ad, bir sürücünün söz dizimi olan iki nokta üst üste ile sona erdiğinden, yolu sürücü adı ile belirtmeniz gerekir. Function: sürücüsünde iki biçimi de kullanabilirsiniz. İkinci komutta nokta (.) geçerli konumu temsil eder.

PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:

İşlev oluşturma

Bu komut, New-Itemadlı bir işlev oluşturmak için Win32: cmdlet'ini kullanır. Küme ayraçlarındaki ifade, işlev adıyla temsil edilen betik bloğudur.

New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}

Kapsamlar

Değişkenler gibi işlevler de belirli bir kapsama aittir. İşlev oluşturduğunuzda, yalnızca oluşturulduğu kapsamda kullanılabilir. İşlevi kullanılabilir hale getirmek için, işlevi oluştururken kapsam değiştirici kullanın. Daha fazla bilgi için bkz. about_Scopes.

Aşağıdaki örnekte, genel kapsamda bir işlev oluşturmak için Global: kapsam değiştiricisi kullanılmaktadır.

function New-Function {
    param(
        [string] $Name,
        [scriptblock] $Script
    )

    $lp = "Function:\Global:$($Name)"
    Set-Item -LiteralPath $lp -Value $Script -PassThru -Force
}

New-Function -Name 'Win32:' -Script { Set-Location C:\Windows\System32 }

Global: kapsam değiştiricisi olmadan işlev yerel kapsamda oluşturulur. New-Function çıktığında yeni oluşturulan işlev artık mevcut olmayacaktır.

İşlev silme

Bu komut geçerli oturumdan more işlevini siler.

Remove-Item Function:more

İşlevi değiştirme

Bu komut, Set-Item işlevini yol bilgisinden önce saati görüntüleyecek şekilde değiştirmek için prompt cmdlet'ini kullanır.

Set-Item -Path Function:prompt -Value {
  'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
  }

İşlevi yeniden adlandırma

Bu komut, Rename-Item işlevinin adını helpolarak değiştirmek için gh cmdlet'ini kullanır.

Rename-Item -Path Function:help -NewName gh

İşlev kopyalama

Bu komut, işlevini öğesine oldPromptkopyalar prompt ve komut istemi işleviyle ilişkili betik bloğu için etkili bir şekilde yeni bir ad oluşturur. Bunu, değiştirmeyi planlıyorsanız özgün istem işlevini kaydetmek için kullanabilirsiniz. Yeni işlevin Seçenekleri özelliği Nonedeğerine sahiptir. Seçenekleri özelliğinin değerini değiştirmek için Set-Itemkullanın.

Copy-Item -Path Function:prompt -Destination Function:oldPrompt

Dinamik parametreler

Dinamik parametreler, bir PowerShell sağlayıcısı tarafından eklenen cmdlet parametreleridir ve yalnızca cmdlet sağlayıcı etkin sürücüde kullanıldığında kullanılabilir.

[System.Management.Automation.ScopedItemOptions] seçeneği <>

bir işlevin Seçenekleri özelliğinin değerini belirler.

  • None: Seçenek yok. None varsayılan değerdir.
  • Constant: İşlev silinemez ve özellikleri değiştirilemez. Constant yalnızca işlev oluştururken kullanılabilir. Var olan bir işlevin seçeneğini Constantolarak değiştiremezsiniz.
  • Private: İşlev yalnızca geçerli kapsamda görünür
  • (alt kapsamlar içinde değil).
  • ReadOnly: -Force parametresinin kullanılması dışında işlevin özellikleri değiştirilemez. İşlevi silmek için Remove-Item kullanabilirsiniz.
  • AllScope: İşlev, oluşturulan tüm yeni kapsamlara kopyalanır.

Desteklenen cmdlet'ler

İşlem hattını kullanma

Sağlayıcı cmdlet'leri boru hattı girişini kabul eder. Bir cmdlet'ten başka bir sağlayıcı cmdlet'ine sağlayıcı verileri göndererek görevi basitleştirmek için işlem hattını kullanabilirsiniz. İşlem hattını sağlayıcı cmdlet'leriyle kullanma hakkında geniş çapta bilgi edinmek için bu makalenin tamamında sağlanan cmdlet başvurularına bakın.

Yardım alma

Windows PowerShell 3.0'dan başlayarak, bu cmdlet'lerin bir dosya sistemi sürücüsünde nasıl davrandığını açıklayan sağlayıcı cmdlet'leri için özelleştirilmiş yardım konuları alabilirsiniz.

Dosya sistemi sürücüsü için özelleştirilmiş yardım konularını almak için, bir dosya sistemi sürücüsünde Get-Help komutunu çalıştırın veya bir dosya sistemi sürücüsü belirtmek için -Path parametresini kullanın.

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path Function:

Ayrıca bakınız