Aracılığıyla paylaş


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 $true yolları 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 $true ayarlanması.

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.

Girişler

None

Çıkışlar

CommandCompletion