PowerShell中的动态变量和值赋值

时间:2013-03-26 21:03:23

标签: variables powershell

如何在运行时声明变量并为它们赋值。

原因:我从sql server获取这些变量值,这些变量值本质上是可配置的

到目前为止我已经尝试过的代码

   [array]$varArray = @($($ServerName),$($HostName)) 

 foreach($varname in $varArray)
        {
          $varname = "some test value"
        }

Write-Host $ServerName
Write-Host $HostName

2 个答案:

答案 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?