2016-04-13 12 views
1

私はこのようなスクリプトを呼び出しています。スクリプトに渡されるパラメータを再定義するにはどうすればよいですか?

./pub.ps1 -b ab 

やパブで私が持っている:私が望む何

param(
    [string]$b 
) 

はPARAMを再定義する場合、またはスイッチのいくつかの種類を持っていることです。

に入るようにするには:つまり

-b abc as a parameter could be converted to: $bucket = "abcd123" 
-b ddd as a parameter could be converted to: $bucket = "sdafasdf" 

することは、私が使用することができ、いくつかの例フォームまたはswitch文はありますか?

+0

多分validatescriptがあなたの質問を正しく理解しているならば適合する答えです – Paul

+0

これは 'ValidateScript()'を乱用することができますが、それは解決策ではありません。まったく。 –

答えて

4

ない私はあなたの質問を理解してください、しかし別の文字列をマッピングするハッシュテーブルを使用してインスタンスに対して行うことができます。

$map = @{ 
    'abc' = 'abcd123' 
    'ddd' = 'sdafasdf' 
} 

$bucket = $map[$b] 

またはswitch文を使用して:

$bucket = switch ($b) { 
    'abc' { 'abcd123' } 
    'ddd' { 'sdafasdf' } 
    default { 'something else' } 
} 

switchアプローチデフォルト値を持つことができるだけでなく、プレーンな文字列の代わりにワイルドカードや正規表現のマッチを行うこともできるので、汎用性があります。