Share via


Kabukta sekme tamamlama kullanma

PowerShell ipuçları sağlamak, bulmayı etkinleştirmek ve giriş girişini hızlandırmak için girişte tamamlamalar sağlar. Komut adları, parametre adları, bağımsız değişken değerleri ve dosya yolları Sekme tuşuna basılarak tamamlanabilir.

Sekme tuşu, Windows'ta varsayılan anahtar bağlamadır. PSReadLine ayrıca Ctrl+Ara Çubuğu'na bağlı bir MenuComplete işlev de sağlar. işlevi, MenuComplete komut satırının altında eşleşen tamamlamaların listesini görüntüler.

Bu anahtar bağlamalar PSReadLine cmdlet'leri veya PowerShell barındıran uygulama kullanılarak değiştirilebilir. Tuş bağlamaları Windows dışı platformlarda farklı olabilir. Daha fazla bilgi için bkz . about_PSReadLine_Functions.

Yerleşik sekme tamamlama özellikleri

PowerShell, komut satırı deneyiminin birçok yönü için sekme tamamlama özelliğini etkinleştirmiştir.

Dosya adı tamamlama

Kullanılabilir seçeneklerden bir dosya adını veya yolu otomatik olarak doldurmak için, adın bir bölümünü yazın ve Sekme tuşuna basın. PowerShell, adı otomatik olarak bulduğu ilk eşleşmeye genişletir. Sekme tuşuna yeniden basmak, her tuşa basmak için tüm kullanılabilir seçenekler arasında geçiş yapar.

Komut ve parametre adı tamamlama

Cmdlet adlarının sekme genişletmesi biraz farklıdır. Bir cmdlet adında sekme genişletmeyi kullanmak için, adın ilk kısmının tamamını (fiil) ve ardından gelen kısa çizgiyi yazın. Kısmi eşleşme için adın daha fazlasını doldurabilirsiniz. Örneğin, yazıp get-co Sekme tuşuna basarsanız, PowerShell bunu otomatik olarak cmdlet'e Get-Command genişletir (harflerin büyük/küçük harflerini standart formlarına da değiştirdiğini unutmayın). Sekme tuşuna yeniden basarsanız, PowerShell bunu eşleşen tek cmdlet adıyla değiştirir. Get-Content Sekme tamamlama, PowerShell diğer adlarını ve yerel yürütülebilir dosyaları çözümlemek için de çalışır.

Aşağıdaki grafikte sekme ve menü tamamlama örnekleri gösterilmektedir.

Sekme ve menü tamamlama örnekleri

Diğer sekme tamamlama geliştirmeleri

PowerShell'in her yeni sürümü, hataları düzelten ve kullanılabilirliği geliştiren sekme tamamlama iyileştirmeleri içerir.

PowerShell 7.0

  • Sekme tamamlama, sabit listesi olan veya türü kısıtlanmış değişken atamalarını çözümler
  • Sekme tamamlama, kısaltılmış cmdlet'leri ve işlevleri genişletir. Örneğin, i-psdf<tab> döndürür Import-PowerShellDataFile

PowerShell 7.2

  • Konumlanmamış about* konular için sekme tamamlamayı düzeltme
  • Tamamlamalarda konumsal parametre olarak ele alınan sıçrama düzeltildi
  • Açıklama tabanlı Yardım anahtar sözcükleri için tamamlamalar ekleme
  • Deyimler için #requires tamamlama ekleme
  • Cmdlet'lerin View parametresi Format-* için sekme tamamlama ekleme
  • Sınıf tabanlı bağımsız değişken tamlayıcıları için destek ekleme

PowerShell 7.3

  • için belirtilen betik bloğu içinde sekme tamamlamayı düzeltme ValidateScriptAttribute
  • ve sonrasındaki break döngü etiketleri için sekme tamamlama eklendi continue
  • Birden çok senaryoda Hashtable tamamlamayı geliştirme
    • Parametre sıçraması
    • için bağımsız değişkenler parametresiInvoke-CimMethod
    • için FilterHashtable parametresi Get-WinEvent
    • CIM cmdlet'leri için özellik parametresi
    • Üye tamamlama senaryolarından yinelenenleri kaldırır
  • Ağ paylaşımı (UNC yolu) tamamlamada eğik çizgileri destekleme
  • Üye otomatik tamamlamasını geliştirme
  • ValidateSet Parametreler için numaralandırmalara göre tamamlanmaların önceliğini belirleme
  • Tür parametreleriyle genel yöntemler için tür çıkarımı desteği ekleme
  • Tür çıkarımı ve tamamlamalarını geliştirme
    • için tamamlama sonuçlarında yöntemlerin gösterilmesine izin verir ForEach-Object -MemberName
    • ([void]("")) gibi void döndüren ifadelerin tamamlanmasını engeller
    • Sınıf tamamlama AST'yi temel alarak varsayılan olmayan Sınıf oluşturucularının gösterilmesine izin verir

Komut parametrelerinin sekme tamamlamasını geliştirmenin diğer yolları

Yerleşik sekme genişletme, TabExpansion veya TabExpansion2 iç işlevi tarafından denetlenmektedir. Bu işlevlerin varsayılan davranışının yerini alan işlevler veya modüller oluşturmak mümkündür. TabExpansion anahtar sözcüğünü arayarak PowerShell Galerisi örnekleri bulabilirsiniz.

ValidateSet veya ArgumentCompletions özniteliklerini parametrelerle kullanma

özniteliği, ArgumentCompletions belirli bir parametreye sekme tamamlama değerleri eklemenize olanak tanır. ArgumentCompletions özniteliği ile ValidateSetbenzerdir. Her iki öznitelik de kullanıcı parametre adından sonra Sekme tuşuna bastığında sunulacak değerlerin listesini alır. Ancak, aksine ValidateSet, değerler doğrulanmaz.

Daha fazla bilgi için bkz.

özniteliğini ArgumentCompleter veya Register-ArgumentCompleter parametrelerle kullanma

Bağımsız değişken tamamlayıcı, parametre değerleri için dinamik sekme tamamlama sağlayan bir betik bloğu veya işlevidir.

ArgumentCompleter özniteliği, parametresi için 'a sekme tamamlama değerleri sağlayan bir işlev kaydetmenizi sağlar. bağımsız değişken completer işlevi, özniteliğine sahip ArgumentCompleter parametresini içeren işlev tarafından kullanılabilir olmalıdır. İşlev genellikle aynı betikte veya modülde tanımlanır.

Daha fazla bilgi için bkz . ArgumentCompleter.

Cmdlet, Register-ArgumentCompleter belirttiğiniz herhangi bir komut için çalışma zamanında bir betik bloğunu bağımsız değişken tamlayıcı işlevi olarak kaydeder. Bu, betiğin veya modülün dışında veya yerel komutlar için bağımsız değişken tamamlayıcıları tanımlamanızı sağlar. Daha fazla bilgi için bkz . Register-ArgumentCompleter.

PSReadLine'da Tahmine Dayalı IntelliSense

PSReadLine 2.1.0, Tahmine Dayalı IntelliSense özelliğini kullanıma sunar. Tahmine dayalı IntelliSense, PSReadLine geçmişinizdeki öğeleri temel alan tam komutlar için öneriler sağlar.

PSReadLine 2.2.2, tam komut önerileri sağlamak üzere gelişmiş mantık kullanan eklenti modülleri için destek ekleyerek Tahmine Dayalı IntelliSense'in gücünü genişletir. Az.Tools.Predictor modülü, Tahmine Dayalı IntelliSense'in ilk eklentisidir. Hangi Azure PowerShell komutunu çalıştırmak istediğinizi ve kullanmak istediğiniz parametreleri tahmin etmek için Machine Learning'i kullanır.

Daha fazla bilgi için bkz . Tahmincileri kullanma.