如何在运行时声明变量并为它们赋值。
原因:我从sql server获取这些变量值,这些变量值本质上是可配置的
到目前为止我已经尝试过的代码
[array]$varArray = @($($ServerName),$($HostName))
foreach($varname in $varArray)
{
$varname = "some test value"
}
Write-Host $ServerName
Write-Host $HostName
答案 0 :(得分:7)
使用动态命名变量的最简单方法是字典:
$vars = @{} # create empty dictionary
# add key/value pairs to dictionary:
$vars["foo"] = 23
$vars["bar"] = "foobar"
$vars["baz"] = Get-Content C:\sample.txt
另一种方法是动态声明变量:
$name = "foo"
$value = "bar"
New-Variable $name $value
echo $foo
或者您可以创建自定义对象并添加属性为Kyle C建议。这种方法类似于字典,虽然技术上有所不同。
答案 1 :(得分:2)
您可以尝试向对象添加NoteProperty。
$varname | Add-Member -type NoteProperty -name TestProperty -value "some test value" -PassThru
另请参阅此内容,了解可添加成员的对象类型:What objects are suitable for Add-Member?