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.
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ürImport-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 eklendicontinue
- Birden çok senaryoda Hashtable tamamlamayı geliştirme
- Parametre sıçraması
- için bağımsız değişkenler parametresi
Invoke-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
- için tamamlama sonuçlarında yöntemlerin 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 ValidateSet
benzerdir. 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.
PowerShell