繁体   English   中英

Jenkins Powershell从变量传递脚本

[英]Jenkins Powershell passing script from variable

我有一个詹金斯步骤定义如下:

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,函数,脚本文件或可操作程序的名称。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM