我有一个PowerShell脚本,在程序开头设置值的限制。例如
$value1Min = 1
$value1Max = 99
$value1Interval = 100
$value1Post = 125
现在我希望能够处理任意数量的值,但我不需要每个值的复制代码。如何为每个值创建参数列表? 例如(pseducode)。
$info={{min = 1
max = 99
interval = 100
post = 125
},
{min = 100
max = 1000
interval = 10000
post = 548
},
{min = 50
max = 100
interval = 500
post = 452
}
}
我在PowerShell中没那么有经验
答案 0 :(得分:4)
你可以创建一个包含这样的哈希表的数组:
$info=@(
@{
"min" = 1;
"max" = 99;
"interval" = 100;
"post" = 125;
},
@{
"min" = 100;
"max" = 1000;
"interval" = 10000;
"post" = 548;
},
@{
"min" = 50;
"max" = 100;
"interval" = 500;
"post" = 452;
}
)
如何获取值的示例:
PS C:\Users\stackoverflow> $info[0].interval
100
您还可以创建包含哈希表的哈希表:
$info=@{
"info1"=@{
"min" = 1;
"max" = 99;
"interval" = 100;
"post" = 125;
};
"info2"=@{
"min" = 100;
"max" = 1000;
"interval" = 10000;
"post" = 548;
};
"info3"=@{
"min" = 50;
"max" = 100;
"interval" = 500;
"post" = 452;
}
}
如何获取值的示例:
PS C:\Users\stackoverflow> $info.info1.max
99
答案 1 :(得分:1)
您可以从xml文件导入参数,并通过posh对象访问它们。
示例: Xml文件val.xml:
<Param>
<Param1 min= '1' max= '99' interval = '100' post = '125'>
</Param1>
<Param2 min= '100' max= '1000' interval = '10000' post= '548'>
</Param2>
<Param3 min= '50' max='100' interval='500' post= '452'>
</Param3>
</Param>
使用以下命令在您的powershell控制台中导入xml文件:
$xml = [xml](Get-Content val.xml)
现在您可以像这样访问您的数据:
$xml.Param
输出:
Param1 Param2 Param3
------ ------ ------
Param1 Param2 Param3
如果你想获得param1值:
$xml.Param.Param1
输出:
min max interval post
--- --- -------- ----
1 99 100 125
然后是$ xml.Param.Param1.min ... etc
当您使用代码中的值时,请注意类型。 示例:
PS > $xml.Param.Param1.min.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
您可能需要强制进行某些类型转换。