我在运行' sqlcmd'时遇到问题从Powershell中传递变量(-v和文件夹路径)。 Powershell正在剥离C'从路上。这是命令:
$CommandLine = "sqlcmd -v dataFeedDir=" + """$ssisDataFeeds""" + " -U user -P password -S " + $Env:COMPUTERNAME + " -i " + "`"" + $setLoc + "\SQL Scripts\Set_SSIS_DataFeed_Directory.sql" + "`"" + " -o " + "`"" + $setLoc + "\SQL Scripts\Set_SSIS_DataFeed_Directory.log" + "`""
如果我打印命令,我会得到:
sqlcmd -v dataFeedDir="C:\is_data_feeds" -U user -P password -S myhost -i "C:\Automation\6_0_0\TruCareInstaller\SQL Scripts\Set_SSIS_DataFeed_Directory.sql" -o "C:\Automation\6_0_0\TruCareInstaller\SQL Scripts\Set_SSIS_DataFeed_Directory.log"
如果我在cmd提示符中粘贴上面的内容并运行它,它就可以正常工作。
我从Powershell获得的错误是:
Sqlcmd: ':\is_data_feeds': Invalid argument. Enter '-?' for help.
At :line:1 char:2
+ & <<<< sqlcmd -v dataFeedDir="C:\is_data_feeds" -U user -P password -S myhost -i "C:\Automation\6_0_0\TruCareInstaller\SQL Scripts\Set_SSIS_DataFeed_Directory.sql" -o "C:\Automation\6_0_0\TruCareInstaller\SQL Scripts\Set_SSIS_DataFeed_Directory.log"
我发现了一些关于此的帖子,但解决方案没有用。
任何帮助都会很棒。
由于
答案 0 :(得分:0)
在尝试了许多事情后想出了问题。
我用它来处理报价问题:
Start-Process "cmd.exe" "/k $CommandLine"