Aracılığıyla paylaş


Komut satırında sekme tamamlamayı kullanma

PowerShell, ipuçları sağlamak, keşfetmeyi etkinleştirmek ve giriş hızını artırmak için tamamlamalar sağlar. Komut adları, parametre adları, bağımsız değişken değerleri ve dosya yollarının tümü Sekme tuşuna basılarak tamamlanabilir.

Tab tuşu, Windows'ta varsayılan tuş bağlamasıdır. PSReadLine, Ctrl+Spaceile ilişkili bir MenuComplete işlevi de sağlar. MenuComplete işlevi, komut satırının altında eşleşen tamamlamaların listesini görüntüler.

Bu tuş bağlamaları PSReadLine cmdlet'leri veya PowerShell'i 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. Sekmesi tuşuna tekrar basıldığında, her basışta tüm kullanılabilir seçenekler arasında döngü 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 isim kısmını daha fazla doldurabilirsiniz. Örneğin, get-co yazıp Sekme tuşuna basarsanız, PowerShell bunu otomatik olarak Get-Command cmdlet'e genişletir (harfleri de standart formlarına değiştirdiğini unutmayın). Sekme tuşuna yeniden basarsanız, PowerShell bunu Get-Contenteşleşen tek diğer cmdlet adıyla değiştirir. 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.

Sekmesi 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, enum veya türü kısıtlanmış değişken atamalarını tamamlar
  • Sekme tamamlama, kısaltılmış cmdlet'leri ve işlevleri genişletir. Örneğin, i-psdf<tab>Import-PowerShellDataFile döndürür

PowerShell 7.2

  • Yerelleştirilmemiş about* konu başlıkları 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
  • #Requires deyimleri için tamamlama ekleyin
  • Format-* cmdlet'lerinin Görünüm parametresi için sekme tamamlama ekleyin
  • Sınıf tabanlı bağımsız değişken tamlayıcıları için destek ekleme

PowerShell 7.3

  • ValidateScriptAttribute için belirtilen betik bloğu içinde sekme tamamlamayı düzelt.
  • break ve continue'den sonra döngü etiketleri için sekme tamamlaması eklendi
  • Birden çok senaryoda Hashtable tamamlama işlevini geliştirme
    • Parametre sıçraması
    • Bağımsız değişkenler parametresi için Invoke-CimMethod
    • FilterHashtable parametresi için 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ştir
  • Parametreler için sabitler yerine ValidateSet tamamlamalarına öncelik verin.
  • Tür parametreleriyle genel yöntemler için tür çıkarımı desteği ekleme
  • Tür çıkarımı ve tamamlamalarını geliştirme
    • ForEach-Object -MemberName için yöntemlerin tamamlama sonuçlarında gösterilmesine izin verir.
    • ([void]("")) gibi void döndüren ifadelerin tamamlanmasını engeller
    • Sınıf tamamlama AST'ye dayandığında, varsayılan olmayan sınıf oluşturucularının görünmesine izin verir.

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

Yerleşik sekme genişletme, TabExpansion veya TabExpansion2iç işlev 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'nde örnekler bulabilirsiniz.

parametrelerle ValidateSet veya ArgumentCompletions özniteliklerini kullanma

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

Daha fazla bilgi için bkz:

parametrelerle ArgumentCompleter özniteliğini veya Register-ArgumentCompleter 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 sekme tamamlama değerleri sağlayan bir işlev kaydetmenizi sağlar. Argüman tamamlama işlevi, ArgumentCompleter özniteliğine sahip parametreyi içeren işlevin erişimine açık olmalıdır. İşlev genellikle aynı betikte veya modülde tanımlanır.

Daha fazla bilgi için bkz: ArgumentCompleter .

Register-ArgumentCompleter cmdlet'i, belirttiğiniz herhangi bir komut için çalışma zamanı sırasında bir betik bloğunu bağımsız değişken tamamlama 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ı İntelliSense

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 eklentisiydi. 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. Tahminleri kullanma.