我正在尝试在我的VSTS powershell脚本中实现以下示例(link。第一个示例)来创建数据库快照(.bacpac)文件但是获取
' / TargetFi ...
+〜
您必须在' /'之后提供值表达式。操作员'错误。
尝试了很多东西但是这个错误在我的Powershell任务的内联脚本中是持久的。似乎这个错误在运行变量和类似情况时非常常见,但我无法找到我特定问题的答案。
'C:ProgramFiles(x86)\Microsoft SQL Server\130\DAC\bin\SqlPackage.exe' /TargetFile:"<C:\Temp\test.dacpac>" /Action:Extract /SourceServerName:"<localhost>" /SourceDatabaseName:"<MyDataBase>" /SourceUser:"<sa>" /SourcePassword:"<MyPa55w0d>"
答案 0 :(得分:1)
尝试使用call operator,如下所示:
& "C:\Program Files (x86)\Microsoft SQL Server\130\DAC\bin\SqlPackage.exe" /TargetFile:"<C:\Temp\test.dacpac>" /Action:Extract /SourceServerName:"<localhost>" /SourceDatabaseName:"<MyDataBase>" /SourceUser:"<sa>" /SourcePassword:"<MyPa55w0d>"
否则PowerShell只是说&#34;嘿,这是一个很好的字符串&#34;,哦,这个/TargetFile
切换是什么意思?
要明白我的意思:
"notepad.exe"
应该只打印&#34; notepad.exe&#34;作为一个字符串。这一个:
"notepad.exe" C:\temp.txt
感到困惑,因为它不知道如何处理你传递给字符串的C:\temp.txt
参数。要让它启动notepad.exe创建一个新文件:
& "notepad.exe" C:\temp.txt
作品!
答案 1 :(得分:0)
以上所有评论和答案都增加了一个值,帮助我解决了我的问题。以下是我的答案(对于像我这样的新手)以及我学到的一些关键点
& "C:\Program Files (x86)\Microsoft SQL Server\130\DAC\bin\SqlPackage.exe" /TargetFile:"C:\Temp\test.dacpac" /Action:Extract /SourceServerName:"localhost" /SourceDatabaseName:"MyDatabase" /SourceUser:"sa" /SourcePassword:"MyPa55w0d"
的建议C:\ Program Files(x86),而不是C:ProgramFiles(x86)