PowerShell中的动态变量和值赋值

Zer*_*ity 1 variables powershell

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

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

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

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

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

Write-Host $ServerName
Write-Host $HostName
Run Code Online (Sandbox Code Playgroud)

Ans*_*ers 7

使用动态命名变量的最简单方法是字典:

$vars = @{}  # create empty dictionary

# add key/value pairs to dictionary:
$vars["foo"] = 23
$vars["bar"] = "foobar"
$vars["baz"] = Get-Content C:\sample.txt
Run Code Online (Sandbox Code Playgroud)

另一种方法是动态声明变量:

$name  = "foo"
$value = "bar"

New-Variable $name $value

echo $foo
Run Code Online (Sandbox Code Playgroud)

或者您可以创建自定义对象并添加属性,如Kyle C建议的那样.虽然技术上有所不同,但这种方法类似于字典.