2009-06-18 7 views
2

PowershellとSQLCMDに問題がありました。-vパラメータにsapcesがあった場合、powershellはコマンドを実行しませんでした。Powershell SQLCMD

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

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

おかげで、PowerShellは実際に"VAR=Some space"としてプログラムにパラメータを渡します

B

+0

あなたはスペースの代わりに%20を試しましたか? –

+2

SQL 2008を使用している場合は、代わりにInvoke-SqlCmdを使用することを強くお勧めします(他のコマンドレットとプロバイダと一緒に)。 –

+0

関連:http://stackoverflow.com/questions/9714054/how-to-execute-sqlcmd-from-powershell –

答えて

5

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

私たちはこの作業をどのように行うのか長い時間をかけて苦労しました。私たちの非常に巧妙なQAの人のうちの1人はついに次のようになりました:

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

プラグが醜いですが動作します。

+0

4時間以上試してみてください。これはついにそれをしました。 PSHはを揺する。 – ryascl

2

。たぶん、sqlcmdがこれを突き止めます。

 
VAR=`"Some space`" 

代わりにVAR="Some space"として渡されます。問題が解決するかもしれません。

関連する問題