У меня довольно сложный SQL-запрос, который я хочу использовать в строке здесь в скрипте PowerShell. Внутри запроса я хочу заменить определенные значения переменными 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
}
Я объявляю строку здесь вверху, и она ссылается на пару переменных PowerShell, $ bar и $ quux, которые меняются каждый раз при прохождении цикла.
Однако, я получаю ошибки, когда запускаю свой скрипт. Когда я запускаю трассировку SQL, нет значения, где переменные PowerShell появляются в сценарии PS.
Переменные PowerShell интерполируются при вызове в строке здесь, как это? Нужно ли помещать всю строку здесь в цикл, где инициализируются переменные? Какова правильная структура для чего-то подобного?
Я использую PowerShell в Windows 7, .Net 4, VS2010. Я не ясно о версии; $Host
возвращает
Name : PowerConsole
Version : 1.0.30222.0
но $PSVersionTable
возвращает
PSVersion 2.0
PSCompatibleVersions {1.0, 2.0}
BuildVersion 6.1.7601.17514