Powershell的添加变量在哈希表
问题描述:
在我的代码我需要呈现键值对更关键的值中的一个是一个数组。我知道你创建的Powershell可以用散列表创建一个数组。我所挣扎的是我怎么能有哈希表中的键的值是从Python中的变量Powershell的添加变量在哈希表
我原来的代码是:
data: {"name":"{{name}}","address" : [{"Number":"{{number}}","Road":"{{road}}","City":"{{city}}”}]}
我的代码示例如下输入:
$number = "10"
$road = "Downing Street"
$city = "London"
$address = @{"Number" = "$number"; "Road" = "$road"; City = "$city"}
$data = @{
name = $name
address = $address
}
下面是从Powershell的变量输出
PS C:\tmp> $address
Name Value
---- -----
Number 10
Road Downing Street
City London
PS C:\tmp> $data = @{
name = $name
address = $address
}
PS C:\tmp> $data
Name Value
---- -----
name prodsql01
address {Number, Road, City}
在$data
地址数组没有它的值。这个代码和我在做什么错
是否有人可以给些建议。
在此先感谢
答
你的代码的工作寿。
PS> $data
Name Value
---- -----
name prodsql01
address {Number, Road, City}
PS> $data.address
Name Value
---- -----
Number 10
Road Downing Street
City London
PS> $data.address.road
Downing Street
如果你想它输出的值,那么你需要考虑你将如何首先代表它。
答
你把它们放在一个数组,所以你只需要参考各一个。
Ex。 $address.Road
$number = "10"
$road = "Downing Street"
$city = "London"
$name = "prodsql01"
$address = @{"Number" = "$number"; "Road" = " $road"; City = " $city"} #I added spaces here
$data = @{
name = $name
address = $address.Number + $address.Road + $address.City
}
答
作为其它mentionned,数据是存在的,但不通过控制台显示。 我的建议,特别是如果你有多个记录,是创建一个PSobject两个名称/地址和号码/城市/公路
与论文更换您的$address
和$data
分配线:
$address = New-Object psobject -Property @{"Number" = "$number"; "Road" = "$road"; City = "$city"}
和
$data = new-object psobject -Property @{name = $name;address = $address}
你的输出现在这个样子。
name address
---- -------
prodsql101 @{Number=10; Road=Downing Street; City=London}
'$ data'确实有值,它只是不显示它们(检查'$ data.address')。什么是所需的输出格式?你可以做'$ data | ConvertTo-Json'如果JSON输出正常。 –