2

我们在使用 Powershell 和 SQLCMD 时遇到问题,当 -v 参数变量中存在 sapces 时,powershell 不会运行该命令。

例如

sqlcmd ... -v VAR="Some space"

有没有人经历过这种情况或知道如何解决这个问题?

谢谢,

4

2 回答 2

5

上面的语法适用于 PS 命令行,但在脚本中失败。

我们在如何使这项工作上苦苦挣扎了很长时间。我们其中一位非常聪明的 QA 人员最终提出了以下建议:

$variableWithSpaces="one two three"
$mySqlCmd = "sqlcmd -E -S $dbServer -i $script  -v var=```"$variableWithSpaces```" "
Invoke-Expression $mySqlCmd 

插头丑陋,但它的工作原理。

于 2009-08-28T23:38:32.450 回答
2

Powershell 实际上会将参数作为"VAR=Some space". 也许 sqlcmd 绊倒了这一点。通过使用

VAR=`"一些空间`"

相反,它将作为VAR="Some space". 也许这可以解决问题。

于 2009-06-18T20:54:39.693 回答