具有多个值和一个键的Powershell哈希表 [英] Powershell hashtable with multiple values and one key
问题描述
我正在寻找一种数据结构/ cmdlet,该数据结构/ cmdlet允许我向Powershell中的单个键添加多个值。
Im looking for a data structure/cmdlet that will allow me to add multiple values to a single key in Powershell.
我的数据理想情况如下:
My data would ideally look like this:
KEY ----------- ---------------值
KEY-------------------------- VALUES
HOSTNAME1 ------------- DATABASE1,DATABASE2,DATABASE3
HOSTNAME1-------------DATABASE1,DATABASE2,DATABASE3
HOSTNAME2 ----------------- DATABASE1,DATABASE2
HOSTNAME2-------------DATABASE1,DATABASE2
等。
我以为哈希表可以解决问题,但我无法执行以下操作:
I thought a hashtable would do the trick, but I'm unable to do the following:
$servObjects = @{}
$servObjects.Add("server1", @())
$servObjects.get_item("server1") += "database1"
当我尝试时会产生一个空数组:
This yields an empty array when I try:
$servObjects.get_item("server1")
我还尝试执行以下操作,希望Powershell能够理解我想要的内容:
I have also tried to do the following, hoping that powershell would understand what I want:
$servObjects2 = @{}
$servObjects2.add($servername, $databasename)
不幸的是,这将产生重复的键异常
This will unfortunately yield a duplicate key exception
感谢所有输入
推荐答案
您基本上想要一个散列表,其值是数组。您不必使用 $ hashtable.get_item
或 .add
You basically want a hash table with values that are arrays. You don't have to use $hashtable.get_item
or .add
$myHashTable = @{} # creates hash table
$myHashTable.Entry1 = @() #adds an array
$myHashTable.Entry1 += "element1"
$myHashTable.Entry1 += "element2"
结果如下输出:
$myHashTable
Name Value
---- -----
Entry1 {element1, element2}
$myHashTable.Entry1
element1
element2
这篇关于具有多个值和一个键的Powershell哈希表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!