代码之家  ›  专栏  ›  技术社区  ›  Learning Curve

Powershell:/TargetFile必须在“/”运算符错误后提供值表达式

  •  0
  • Learning Curve  · 技术社区  · 8 年前

    我正在尝试实现以下示例( link 。第一个示例)在我的VSTS powershell脚本中创建数据库快照(.bacpac)文件,但

    “/目标函数…”。。。
    +~
    必须在“/”运算符”错误后提供值表达式。

    尝试了许多操作,但此错误在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>"
    
    2 回复  |  直到 8 年前
        1
  •  3
  •   Daniel Morritt    8 年前

    尝试使用 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只会说“嘿,这是一根漂亮的线”,哦,这是什么意思 /TargetFile 切换是指?

    要了解我的意思,请运行:

    "notepad.exe"
    

    只需将单词“notepad.exe”打印为字符串即可。这个:

    "notepad.exe" C:\temp.txt
    

    由于不知道如何处理 C:\temp.txt 要传递给字符串的参数。启动记事本。exe创建新文件:

    & "notepad.exe" C:\temp.txt
    

    作品

        2
  •  0
  •   Learning Curve    8 年前

    所有上述评论和答案都增加了价值,帮助我解决了问题。以下是我的答案(对于像我这样的新手)和我学到的一些要点

    & "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: \程序文件(x86),而不是C:程序文件(x86)

    根据建议 Bill_Stewart

    • 值不应该用尖括号(<,>)括起来。内联Powershell无法识别这些括号,我遇到了错误。不知道从脚本文件和不同版本运行脚本是否相同。
    推荐文章