我定义了一个詹金斯步骤:
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,函数,脚本文件或可运行程序的名称。
感觉就像一个逃避的问题,但我迷路了-谁能指出我正确的方向
答案 0 :(得分:2)
& "somecommand" <arguments>
包含空格时,在Powershell中通常使用&符号somecommand
。
请注意,您的示例中的参数不应该放在双引号中。通过将参数放在引号中,您将迫使powershell将参数解释为命令名称的一部分,这将不起作用。