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.
Sözdizimi
ScriptInputSet EnterprisePublishing
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
AstInputSet
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 TabExpansion2iç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 TabExpansion2mü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ştir Three. İşlevinizin beklenen sonuçları döndürdüğü sekme tamamlama işlemini test etmek için bu tekniği kullanabilirsiniz.
function Get-Data {
param (
[ValidateSet('One', 'Two', 'Three')]
[string]$Stage
)
Write-Verbose "Retrieving data for stage $Stage"
}
$result = TabExpansion2 -inputScript ($line = 'Get-Data -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.
Parametre özellikleri
| Tür: | Ast |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
AstInputSet
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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.
Parametre özellikleri
| Tür: | Int32 |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
ScriptInputSet
| Position: | 1 |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-inputScript
Sekme tamamlama kullanarak genişletmek istediğiniz betiği temsil eden dize.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
ScriptInputSet
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-options
API'ye geçirilebilir seçenek değerlerinin CompleteInput() karma tablosu. API aşağıdaki boole seçeneklerini kabul eder:
-
IgnoreHiddenShares- olarak$trueayarlandığı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$trueyolları göreli yollarla değiştirmek için zorlar. Bu değeri olarak$falseayarlamak, 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$trueayarlanması.
Parametre özellikleri
| Tür: | Hashtable |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | 3 |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-positionOfCursor
Giriş AST'sindeki imlecin sütun numarası. İmleç konumu, sekme tamamlama tarafından genişletilir belirteci belirlemek için kullanılır.
Parametre özellikleri
| Tür: | IScriptPosition |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
AstInputSet
| Position: | 2 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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.
Parametre özellikleri
| Tür: | Token[] |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
AstInputSet
| Position: | 1 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
CommonParameters
Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.