2017-11-29 16 views
-4

目的:ユーザーがリストにない色で入力すると、デフォルトではグレーになります。ユーザがリスト内の色を選択した場合、その色を使用する必要があります。ステートメントが入力を受け付けない場合

実際には何が起こっているのですか?色は常にグレーにデフォルト設定されています。

プレーンテキストの例1:黄色、緑色、赤色、紫色または灰色を選択します。 ユーザー:青。 出力:色はグレーです。

プレーンテキストの例2:黄色、緑色、赤色、紫色または灰色を選択します。 ユーザー:緑。 出力:色は緑です。これを行う

[CmdletBinding()] 
param (

[Parameter(Mandatory=$True, HelpMessage="Choose yellow, green, red, purple or gray")] 
[string]$color_select 

) 

$colors_list = "yellow", "green", "red", "purple", "gray", "random" 

if ($color_select -notcontains $colors_list) { 

$color_select = "gray" 

} 


Write-host "The color is: $color_select" 
+0

は、 'if($ colors_list -notcontains $ color_select)' – Avshalom

+0

です。@supertoy:はい、リストが選択された色であるかどうかを確認しています。 –

+0

if($ color_select -notin $ colors_list).. – ShanayL

答えて

5

は私の意見では、より簡単である:それはあなたがそれを省略することを計画している場合、などの必須パラメータを設定しても意味がありません

[CmdletBinding()] 
param (
    [Parameter(HelpMessage="Choose yellow, green, red, purple or gray")] 
    [ValidateSet('yellow','green','red','purple',"gray", "random")] 
    [string]$color_select="gray" 
) 

関連する問題