1

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

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

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

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

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

Write-Host $ServerName
Write-Host $HostName
4

2 回答 2

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的建议添加属性。这种方法类似于字典,尽管在技术上有所不同。

于 2013-03-26T22:23:35.123 回答
2

您可以尝试向对象添加 NoteProperty。

$varname | Add-Member -type NoteProperty -name TestProperty -value "some test value" -PassThru

另请参阅此内容,了解您可以将成员添加到哪些类型的对象:哪些对象适合添加成员?

于 2013-03-26T21:15:48.783 回答