我们在使用 Powershell 和 SQLCMD 时遇到问题,当 -v 参数变量中存在 sapces 时,powershell 不会运行该命令。
例如
sqlcmd ... -v VAR="Some space"
有没有人经历过这种情况或知道如何解决这个问题?
谢谢,
乙
我们在使用 Powershell 和 SQLCMD 时遇到问题,当 -v 参数变量中存在 sapces 时,powershell 不会运行该命令。
例如
sqlcmd ... -v VAR="Some space"
有没有人经历过这种情况或知道如何解决这个问题?
谢谢,
乙
上面的语法适用于 PS 命令行,但在脚本中失败。
我们在如何使这项工作上苦苦挣扎了很长时间。我们其中一位非常聪明的 QA 人员最终提出了以下建议:
$variableWithSpaces="one two three"
$mySqlCmd = "sqlcmd -E -S $dbServer -i $script -v var=```"$variableWithSpaces```" "
Invoke-Expression $mySqlCmd
插头丑陋,但它的工作原理。
Powershell 实际上会将参数作为"VAR=Some space"
. 也许 sqlcmd 绊倒了这一点。通过使用
VAR=`"一些空间`"
相反,它将作为VAR="Some space"
. 也许这可以解决问题。