在我的代码中,我需要呈现键值对,但其中一个键值是数组。我理解在Powershell中你创建的可以创建一个带有哈希表的数组。我正在努力的是如何在哈希表中将键的值变为变量
我在python中的原始代码是:
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
中,地址数组没有值。
有人可以就此代码提出一些建议,以及我做错了什么。
提前致谢
答案 0 :(得分:0)
您的代码可以使用。
c.Wait()
如果您希望它输出值,那么您需要考虑如何首先代表它。
答案 1 :(得分:0)
你把它们放在一个数组中,所以你只需要引用它们。
实施例。$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
}
答案 2 :(得分:0)
正如其他提到的那样,数据存在,但不会通过控制台显示。 我的建议,特别是如果你有多个记录,是为名称/地址和号码/城市/道路创建一个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}