【问题标题】:Jenkins Powershell passing script from variableJenkins Powershell 从变量传递脚本
【发布时间】:2019-03-12 21:52:49
【问题描述】:

我有一个这样定义的詹金斯步骤:

script {
        def cmd =  ' & "' + env.WORKSPACE + '\\SpearsLoad\\Scripts\\DeploySSISPackage.Ps1 -server ' + dbServer + ' -ProjectFilePath ' + env.WORKSPACE + '\\SpearsLoad\\bin\\' + buildConfig + '\\SpearsLoad.ispac"'
        println cmd
        def msg = powershell(returnStdout: true, script: ' & "' + env.WORKSPACE + '\\SpearsLoad\\Scripts\\DeploySSISPackage.Ps1 -server ' + dbServer + ' -ProjectFilePath ' + env.WORKSPACE + '\\SpearsLoad\\bin\\' + buildConfig + '\\SpearsLoad.ispac"')
        println msg
        }

在 println cmd 我得到了我想要的 powershell:

c:\workspace\Spears_master\SpearsLoad\Scripts\DeploySSISPackage.Ps1 -server LONSQLLD01\L14D1 -ProjectFilePath c:\workspace\Spears_master\SpearsLoad\bin\development\SpearsLoad.ispac

我尝试在 powershell 命令中插入表达式:

 powershell(returnStdout: true, script: ' & "' + env.WORKSPACE + '\\SpearsLoad\\Scripts\\DeploySSISPackage.Ps1 -server ' + dbServer + ' -ProjectFilePath ' + env.WORKSPACE + '\\SpearsLoad\\bin\\' + buildConfig + '\\SpearsLoad.ispac"')

使用变量失败

powershell(returnStdout: true, script: cmd)

在这两种情况下我都得到:不被识别为 cmdlet、函数、脚本文件或可运行程序的名称。

这感觉像是一个逃避问题,但我迷路了 - 谁能指出我正确的方向

【问题讨论】:

  • 你能把你的打印指令的输出ppst吗println msg

标签: powershell jenkins jenkins-pipeline


【解决方案1】:

somecommand 包含空格时,与符号& "somecommand" <arguments> 模式通常在powershell 中使用。

请注意参数不应像您的示例中那样位于双引号内。通过将参数放在引号内,您将强制 powershell 将参数解释为命令名称的一部分,这将不起作用。

【讨论】:

  • 就是这样 env.WORKSPACE + '\\SpearsLoad\\Scripts\\DeploySSISPackage.Ps1 -server ' + dbServer + ' -ProjectFilePath ' + env.WORKSPACE + '\\SpearsLoad\\bin\\ ' + buildConfig + '\\SpearsLoad.ispac' 工作谢谢 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 1970-01-01
相关资源
最近更新 更多