1

これは VS PowerShell 用のスクリプトです。

function global:Add-Shape { param([string]$Shape, [string[]]$Colors) 
    Write-Host "Shape Name:$Shape"

    foreach ($i in $Colors) {
        Write-Host "Color Name:$i"
    }
}

Register-TabExpansion 'Add-Shape' @{
    'Shape' = { 
        "Circle",
        "Square",
        "Triangle"
    }
    'Colors' = { 
        "Brown",
        "Red",
        "Blue"
    }
}

パッケージ マネージャー コンソールでこのコマンドを実行してスクリプトを実行すると、タブを使用してオプションを選択し、TabExpansion から各オプションの値を選択できます。

Add-Shape -Shape Circle -Colors Red,...

問題は、配列オプションのタブ補完の最初の値を選択した後、追加を選択するために再び表示されないことです。

4

1 に答える 1

1

ValidateSet を使用できます。

function global:Add-Shape { 

    param(
    [ValidateSet("Circle","Square","Triangle")]
    [string]$Shape,
    [ValidateSet("Brown","Red","Blue")]
    [string[]]$Colors
    )
    Write-Host "Shape Name:$Shape"

    foreach ($i in $Colors) {
        Write-Host "Color Name:$i"
    }
}
于 2015-06-21T22:57:23.547 に答える