TabExpansion2
PowerShell betikleri CompleteInput()
için sekme tamamlama sağlamak üzere CommandCompletion sınıfının yöntemini sarmalayan bir yardımcı işlev.
Syntax
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
TabExpansion2
[-ast] <Ast>
[-tokens] <Token[]>
[-positionOfCursor] <IScriptPosition>
[[-options] <Hashtable>]
[<CommonParameters>]
Description
TabExpansion2
, kullanıcı girişi için sekme tamamlama sağlayan yerleşik bir işlevdir. Kullanıcı bir komut yazarken Sekme veya Ctrl+Ara Çubuğu tuşuna bastığında PowerShell bu işlevi çağırır. İşlev, geçerli giriş için olası tamamlamaların listesini döndürür.
TabExpansion2
normalde kullanıcılar tarafından doğrudan çağrılmaz. Ancak, sekme tamamlama testi için yararlı olabilir. kullanmak TabExpansion2
için geçerli giriş betiğini ve betikteki imleç konumunu sağlamanız gerekir. İşlev, geçerli giriş için olası tamamlamaların listesini içeren bir CommandCompletion nesnesi döndürür. Bu giriş betiği, betiği temsil eden bir dize veya soyut söz dizimi ağacı (AST) olabilir.
PowerShell oturumunuzda aynı ada sahip bir özel işlev tanımlayarak varsayılan davranışını TabExpansion2
geçersiz kılabilirsiniz. Bu özel işlev, özel komutlar veya parametreler için tamamlamalar sağlayabilir. geçersiz kılmak TabExpansion2
mümkün olsa da desteklenmez. Yalnızca sekme tamamlama davranışını özelleştirmeniz gerekiyorsa özel bir işlev oluşturmanız gerekir.
Örnekler
Örnek 1 - Komut parametresi için sekme tamamlama alma
Bu örnek, PowerShell komut istemine girerek Format-Hex -<Tab>
elde edeceğiniz sonuçların aynısını gösterir. İşlev, TabExpansion2
belirteç için -
olası tamamlamaların listesini içeren bir CommandCompletion nesnesi döndürür.
TabExpansion2 -inputScript ($s = 'Format-Hex -') -cursorColumn $s.Length |
Select-Object -ExpandProperty CompletionMatches
CompletionText ListItemText ResultType ToolTip
-------------- ------------ ---------- -------
-Path Path ParameterName [string[]] Path
-LiteralPath LiteralPath ParameterName [string[]] LiteralPath
-InputObject InputObject ParameterName [psobject] InputObject
-Encoding Encoding ParameterName [Encoding] Encoding
-Count Count ParameterName [long] Count
-Offset Offset ParameterName [long] Offset
Örnek 2 - Parametre değerleri için sekme tamamlama alma
Bu örnekte, parametre değerleri için sekme tamamlamanın nasıl alınıyor olduğu gösterilmektedir. Bu örnekte Stage parametresinin üç olası değeri olmasını ve değerlerden birinin olması beklenmiştirThree
. İşlevinizin beklenen sonuçları döndürdüğü sekme tamamlama işlemini test etmek için bu tekniği kullanabilirsiniz.
function GetData {
param (
[ValidateSet('One', 'Two', 'Three')]
[string]$Stage
)
Write-Verbose "Retrieving data for stage $Stage"
}
$result = TabExpansion2 -inputScript ($line = 'GetData -Stage ') -cursorColumn $line.Length |
Select-Object -ExpandProperty CompletionMatches
$result.Count -eq 3
$result.CompletionText -contains 'Three'
True
True
Parametreler
-ast
Sekme tamamlama kullanarak genişletmek istediğiniz betiği temsil eden soyut söz dizimi ağacı (AST) nesnesi.
Tür: | Ast |
Position: | 0 |
varsayılan değer: | None |
Gerekli: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-cursorColumn
Giriş betiği dizesindeki imlecin sütun numarası. İmleç konumu, sekme tamamlama tarafından genişletilir belirteci belirlemek için kullanılır.
Tür: | Int32 |
Position: | 1 |
varsayılan değer: | None |
Gerekli: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-inputScript
Sekme tamamlama kullanarak genişletmek istediğiniz betiği temsil eden dize.
Tür: | String |
Position: | 0 |
varsayılan değer: | None |
Gerekli: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-options
API'ye geçirilebilir seçenek değerlerinin CompleteInput()
karma tablosu. API aşağıdaki boole seçeneklerini kabul eder:
IgnoreHiddenShares
- olarak$true
ayarlandığında ve\\COMPUTER\C$
gibi\\COMPUTER\ADMIN$
gizli UNC paylaşımlarını yoksayın. PowerShell varsayılan olarak gizli paylaşımlar içerir.RelativePaths
- Varsayılan olarak PowerShell, sağladığınız girişe göre yolların nasıl genişletilmesi gerektiğine karar verir. Bu değeri, PowerShell'i$true
yolları göreli yollarla değiştirmek için zorlar. Bu değeri olarak$false
ayarlamak, PowerShell'i bunları mutlak yollarla değiştirmesi için zorlar.LiteralPaths
- Varsayılan olarak, PowerShell köşeli ayraçlar ve arka keneler gibi özel dosya karakterlerini kaçış eşdeğerleriyle değiştirir. Bu değerin değiştirilmesini engelleyecek şekilde$true
ayarlanması.
Tür: | Hashtable |
Position: | 3 |
varsayılan değer: | None |
Gerekli: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-positionOfCursor
Giriş AST'sindeki imlecin sütun numarası. İmleç konumu, sekme tamamlama tarafından genişletilir belirteci belirlemek için kullanılır.
Tür: | IScriptPosition |
Position: | 2 |
varsayılan değer: | None |
Gerekli: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-tokens
Giriş betiğinden ayrıştırılan belirteç dizisi. Belirteçler, sekme tamamlama ile genişletilir belirteci belirlemek için kullanılır.
Tür: | Token[] |
Position: | 1 |
varsayılan değer: | None |
Gerekli: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
None
Çıkışlar
İlişkili Bağlantılar
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin