2017-01-06 8 views
2

私はコマンドラインから作業しています。私はこれを行うことができますコマンドラインからデフォルト値の文字列パラメータに値を渡さないエラー

Param(
    [Parameter()] [string]$greeting="HelloWorld" 
) 

::さんは、私の例は次のようになりましょうmygreeting
そして、それは出力がHelloWorld

または私はこれを行うことができます。mygreeting -greeting="whatever"
をそして、それはwhatever

出力は以下となります

これを入力できないのはなぜですか?

mygreeting -greeting 

引数が見つからないというエラーは表示されません。
挨拶が指定されているが、挨拶がデフォルト値

+0

「価値がない」とはどういう意味ですか?誰かが 'mygreeting -greeting '" 'を入力した場合と同様に?あなたが旗を渡すなら、私はそれが何かを必要と思う* –

答えて

1

使用を指定されていない場合は値が、その後、条件付きで他のもの
に基づいて値を設定していない場合:私は基本的に言うことができるようにしたいコードで

これは仕様です。 PowerShellでは、で引数を渡して、パラメータの名前とそれに続く値を指定します(スイッチまたは値渡しの位置パラメータを使用する場合を除く)。

1

あなたは、この使用することができます:あなたのパラメータ についての値を設定すると、uはこのようにそれを呼び出すことができます

function test-test { 
    [CmdletBinding()] 
    Param (
    [parameter(Position = 0)] 
    [string]$greetings = "hi world" 
    ) 

    $greetings 
} 

を:実行

test-test "something" 

または

test-test -greetings "something" 

しかし、あなたはカントそれは好きですparameter="value"

あなたはこれを使用したい場合は3210

あなたが使用する必要があります。このような

test-test ($greetings = "ssss") 

を。 しかし、実際にはこの$greetingsはあなたの関数の変数と同じではありません。なぜならyoure関数よりも大きなオスカーを持つからです。

関連する問題