在PowerShell中创建一个新的全局变量

时间:2014-01-16 22:08:19

标签: powershell

您好我正在尝试创建一个可以通过脚本调用的变量列表。变量将来自SQL表。以下是我到目前为止的情况。我试图设置一个没有运气的变量。我知道自己可能缺少什么吗?

Function GlobalVariables () {
    $ListQuery = "SELECT Top 1 SourceServer, SourceDBase, SourceObject, TargetServer, TargetDBase, TargetObject, TargetObject_IN FROM dbo.$ConfigTable WHERE OptionActive = 1"
    [array]$MovingList = Invoke-Sqlcmd -ServerInstance $ConfigServer -Database $ConfigDB -Query $ListQuery
    $MovingList | 
    New-Variable -Name DevServ $_.SourceSever  -Scope Global
}
Write-Output $DevServ
GlobalVariables

2 个答案:

答案 0 :(得分:0)

假设其他一切都是正确的,你似乎在这里错过了一个foreach-object:

$MovingList | 
    New-Variable -Name DevServ $_.SourceSever  -Scope Global

但一般来说,使用全局变量是不好的做法,我不得不怀疑你是否会把所有这些都放到哈希表中更好。

答案 1 :(得分:0)

$DevServ之后调用GlobalVariables后才会存在。意思是,这两行:

Write-Output $DevServ
GlobalVariables

应该颠倒过来:

GlobalVariables
Write-Output $DevServ