2

-v パラメータ変数にスペースがあると、Powershell と SQLCMD で問題が発生し、powershell がコマンドを実行しませんでした。

例えば

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

誰もこれを以前に経験したことがありますか、または問題を解決する方法を知っていますか?

ありがとう、

B

4

2 に答える 2

5

上記の構文は PS コマンドラインでは機能しますが、スクリプト内では失敗します。

私たちはこれを機能させる方法に長い間苦労しました。非常に賢い QA 担当者の 1 人が、最終的に次のことを思いつきました。

$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 に答える