2012-06-21 10 views
14

私はpowershellで配列の配列を作成したいと思います。PowerShellで配列の配列を作成するには?

$x = @(
    @(1,2,3), 
    @(4,5,6) 
) 

正常に動作します。しかし、時々私は配列リストに1つの配列しかありません。そのような状況では、PowerShellはリストの1を無視:

$x = @(
    @(1,2,3) 
) 

$x[0][0] # Should return 1 
Unable to index into an object of type System.Int32. 
At line:1 char:7 
+ $a[0][ <<<< 0] 
    + CategoryInfo   : InvalidOperation: (0:Int32) [], RuntimeException 
    + FullyQualifiedErrorId : CannotIndex 

どのように私は、配列の配列を作成するのです、配列がそれに唯一の配列項目を持っている場合でも、2次元配列として残っていますが保証?

答えて

29

配列を作成するために、コンマ力を追加:

$x = @(
    ,@(1,2,3) 
) 

簡単な方法を:

$x = ,(1,2,3) 
+1

魔法コンマストライキを再び!なぜpowershellはコンマなしで配列を作成しませんか? – jumbo

+8

魔法に関する記事:http://blogs.msdn.com/b/powershell/archive/2007/01/23/array-literals-in-powershell.aspxコンマ演算子はPowerShellの配列構築演算子です –

+1

もちろん、構文の一貫性のために、この '@(、@(1,2,3)、@(4,5,6))'が動作することを願っています...しかしそれはあなたにあなたが期待しているものを与えるものではありません。一口。 –

関連する問題