2つの配列$A
と$B
は両方とも空になる可能性があります。
$A = $B = @()
これは動作します:
$A,$B | Test-Path
し、エラーを返します:
$A+$B | Test-Path
これは動作しません
Test-Path : Cannot bind argument to parameter 'Path' because it is an empty array.
私は両方の式が失敗すると予想しているだろう、 +
演算子は次のとおりです。空の配列を別の配列に追加すると、結果の配列はまだ空ですか?
両方の方法の全体的なタイプを見ると、それらは同じタイプであることが示されます。
PS Y:\> $E = $A+$B
PS Y:\> $E.getType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
PS Y:\> $F = $A,$B
PS Y:\> $F.getType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
なぜTest-Path
と違っ$A+$B
& $A,$B
相互作用していますか?
'$ A + $ B'は2つの空の配列を連結し、1つの浅い空の配列を作成します。 '$ A、$ B'は2つの空の配列を含む新しい配列を作成します –