2011-02-08 13 views
2

私はしばらくしてグーグルでいますが、私の問題の解決策は見つかりませんでした。 私はPowershellで初心者だと言わなければならない。Powershell - データを格納するために多次元配列を使用する - 提案が必要です

Iは(常に) A = 1つのストリング B = 1つの文字列(常に) C =ストリングの不定数以下アレイ の$ A =(A、B、C、D)を作成したいです。要素を動的に追加できるようにする必要があります D =定義されていない数の文字列です。要素を動的に追加できるようにする必要があります(Cと同じ番号)

これは可能ですか?アレイ

  1. ( "WSTM"、 "192.168.10.155" の2つの要素( "WSTM8765421"、 "WSTM9856454"、 "WSTM1289765")、( "192.36.36.36"、「187.25の 例。 25.25" 、 "192.69.89.65"))

  2. ( "WLDN1251254"、 "156.25.36.54"、( "WLDN1234512"、 "WLDN9865323")、( "187.154.12.12"、 "163.136.25.98"))

私は先験的にCとDの要素数を知りませんし、CとDの位置に文字列を追加する必要があります。

範囲:同じ文字列(A/B)の下に共通の文字列(C & D)をグループ化します。

すべてのヘルプはあなたがこれを行うことができ

おかげで、 マルコ

答えて

3

を理解されるだろうが、配列を扱うことによる暗黙の平坦化の多くにPowerShellで、時には厄介であるとして、それはおそらくかなり痛いです。

カスタムタイプを作成することをおすすめします。そして、あなたを

$properties = @{ 
    Name = 'WSTM'; 
    IP = [ipaddress]'192.168.10.155'; 
    ListOfNames = @("WSTM8765421","WSTM9856454","WSTM1289765"); 
    ListOfIPs = [ipaddress[]]@("192.36.36.36", "187.25.25.25","192.69.89.65") 
} 

$foo = New-Object PSObject -Property @properties 

:次に、あなたはまた、個々の部品に有用名前を(私はあなたがここでやっていることの目的を知らないので、私はここに名前を作ってるんだ変更してお気軽に)与えることができます次のような新しい項目を単純に追加できます:

$foo.ListOfNames += 'AnotherName' 
+0

あなたは男です。これは私の問題を解決しました。多くの多くのありがとうございます – Marco

0

これはほぼ同じ考えです。ハッシュテーブルを使用し、2つの要素配列を作成します。これは、実行時に、事前にどんな内容になっていたのかを知らずに、その配列を "オンザフライ"で作成する方法です。$ xをとり、 "t"で始まる項目を "C"に入れます。他の "D":

$a = @{A = "Some string";B = "Some other string"} 

$x = "one","two","three","four","five" 

$x |% { 
    if ($_ -match "^t"){$a["C"] += @($_)} 
    else {$a["D"] += @($_)} 
    } 

$a.a 
Some string 

$a.b 
Some other string 

$a.c 
two 
three 


$a.d 
one 
four 
five 


$obj = new-object psobject -property $a 
+0

お二人のおかげです。私は私の問題を解決しました。 – Marco

関連する問題