我有以下代码,并希望根据提供给aaa
函数的ADProps.physicalDeliveryOfficeName
中的内容返回GetOfficeLocation
的字符串值。
该开关似乎在做应做的事情,但是它不会返回字符串值,也许我在输出$a["aaa"]
时引用错误了吗?
$global:newcastle = @{
"Value 1 newcastle" = @{
"aaa" = "newcastle string";
}
}
$global:london = @{
"Value 1 london" = @{
"aaa" = "london string";
}
}
$global:heathrow = @{
"Value 1 heathrow" = @{
"aaa" = "heathrow string";
}
}
$ADProps=@{
'physicalDeliveryOfficeName'= "heathrow airport";
}
function GetOfficeLocation ($office) {
switch ( $office )
{
"newcastle" {$location = "newcastle"; break}
"london city" {$location = "london"; break}
"heathrow airport" {$location = "heathrow"; break}
}
return $location
}
$a = GetOfficeLocation($ADProps.physicalDeliveryOfficeName)
$a["aaa"]
结果是没有任何内容输出到控制台。
在此示例中,期望的结果是要显示以下内容:heathrow string
有效地,我试图确定要选择哪个@global变量,然后从此访问其成员。
编辑
如何基于将heathrow string
作为参数传递到heathrow airport
函数中,如何返回值GetOfficeLocation
?我还希望能够通过相应地更改输入来返回newcastle string
或london string
。
答案 0 :(得分:2)
您可以使用哈希表来实现。像这样:
$HashTable = @{
'newcastle' = 'newcastle';
'london city' = 'london';
'heathrow airport' = 'heathrow';
}
$ADProps=@{
'physicalDeliveryOfficeName'= "heathrow airport";
}
呼叫键'heathrow airport'
将返回其对应的值heathrow
$HashTable[$ADProps.physicalDeliveryOfficeName]
heathrow
答案 1 :(得分:1)
我认为您正在尝试做的事情是这样的:
heathrow = @{
aaa = "heathrow string"
}
$a = GetOfficeLocation($ADProps.physicalDeliveryOfficeName)
(Get-Variable -Name $a).value.aaa
但我不知道,代码完全不清楚