0

シンプルな PowerShell 関数があります

function Foo($a, $b){
  '$a = ' + $a
  '$b = ' + $b
}

呼び出して呼び出します

Foo("dogs", "cat");

私がこれまでに読んだことはすべて、期待される出力は

$a = dogs
$b = cats

私が実際に見ているのは:

$a = dogs cat
$b =

関数を次のように書き直すと:

function Foo($a, $b){
  '$a is ' + $a.GetType().Name;
  '$b = ' + $b.GetType().Name;
}

出力は次のとおりです。

$a is Object[]
You cannot call a method on a null-valued expression.
At C:\WCMTeam\Percussion\Notifier\foo.ps1:4 char:7
+       '$b = ' + $b.GetType().Name;
+       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

どうやら $a と $b が 1 つの配列に結合されているようです。これを引き起こすために私は何をしていますか、そして期待される結果を得るためにどのように変更する必要がありますか?

4

1 に答える 1

5

を使用して関数を呼び出す必要があります

Foo "dogs" "cats"

,Powershell で配列要素を区切るために使用されるため、

Foo "dogs", "cats"

Fooに割り当てられた単一の配列引数を使用して呼び出します$a

于 2013-04-04T19:42:30.623 に答える