私は答えを検索しようとしましたが、一連のキーワードにPowerShellとパラメーターという単語を一緒にしても、簡単な検索にはならないと思います
私の質問は、私は関数を書いていて、パラメーターを指定しましたが、パラメーターは特定の文字列のリストの1つでなければなりません。
スクリプト内でこれらの文字列を指定して、「myfunction -parameter ..」と入力すると、パラメーター値にタブ補完を使用できるようにする方法はありますか?
PowerShell V2を使用している場合は、[ValidateSet()]
属性を使用できます。例:
param(
[Parameter()]
[ValidateSet('foo','bar','baz')]
[string[]]
$Item
)
次のコマンドを実行して、ヘルプトピックを参照してください。
man about_functions_advanced_parameters
キースが示すように[ValidateSet()]
を使用できますが、これは多数の可能な値ではうまく機能しません(Tabキーを押したときにリストへの入力が非常に遅くなります)。タブ補完を取得する別の方法は、カスタム列挙型を作成することです。
http://blogs.msdn.com/b/powershell/archive/2008/06/03/v2-custom-enums.aspx
パラメータをその列挙型としてキャストします。これにより、文字列で許可される文字セット(基本的には文字と数字のみ)にいくつかの制限が課されますが、値のリストが比較的大きい場合は、タブ補完リストの入力がはるかに速くなります。