我有一个相当复杂的 SQL 查询,我想在 PowerShell 脚本的 here-string 中使用。在查询中,我想用 PowerShell 变量替换某些值。我试图准确了解我需要在哪里声明和初始化将在此处字符串中使用的变量。
简化示例:
$SqlQuery = @"
update MyTable
set foo = $bar
where baz = $quux
"@
...
foreach ($part in $parts) {
$bar = $part[0]
$quux = $part[1]
Run-SqlNonQuery $SqlQuery #Run-SqlNonQuery is a funct. that executes the query
}
我在顶部声明了 here-string,它引用了几个 PowerShell 变量,$bar 和 $quux,每次通过循环都会改变。
但是,我在运行脚本时遇到错误。当我运行 SQL 跟踪时,PowerShell 变量出现在 PS 脚本中的位置没有任何值。
当在这样的字符串中调用时,PowerShell 变量是否会被插值?我是否需要将整个 here-string放在初始化变量的循环中?这样的事情的正确结构是什么?
我在 Windows 7、.Net 4、VS2010 上运行 PowerShell。我不清楚版本;$Host
返回
Name : PowerConsole
Version : 1.0.30222.0
但$PSVersionTable
返回
PSVersion 2.0
PSCompatibleVersions {1.0, 2.0}
BuildVersion 6.1.7601.17514