如何在Jenkins管道中将groovy变量传递给powershell?

如何在Jenkins管道中将groovy变量传递给powershell?,jenkins,groovy,Jenkins,Groovy,我试图将groovy变量传递给jenkins管道内部的powershell脚本,所有这些都在同一个地方,但我不知道如何传递。我尝试了不同的方法,但没有成功 我需要它来获取批准管道步骤的人员的姓名,并将其传递给连接SQL SERVER的powershell stage('Step1'){ steps{ script{ def approverDEV approverDEV = input id: 'test', messag

我试图将groovy变量传递给jenkins管道内部的powershell脚本,所有这些都在同一个地方,但我不知道如何传递。我尝试了不同的方法,但没有成功

我需要它来获取批准管道步骤的人员的姓名,并将其传递给连接SQL SERVER的powershell

    stage('Step1'){
      steps{ 
        script{
         def approverDEV
         approverDEV = input id: 'test', message: 'Hello', ok: 'Proceed?', parameters: [choice(choices: 'apple\npear\norange', description: 'Select a fruit for this build', name: 'FRUIT'), string(defaultValue: '', description: '', name: 'myparam')], submitter: 'user1,user2,group1', submitterParameter: 'APPROVER'

          echo "This build was approved by: ${approverDEV['APPROVER']}"
        }
      }
    }

stage('Step2'){
  steps{ 
    script{
      powershell ('''
       # Example echo "${approverDEV['APPROVER']}"
       # BUT THIS DOESN'T WORK :(
      ''')
    }
  }
}

我希望输出是GROOVY approverDEV变量中存储的批准人的名称。如果Dagett正确,请在powershell脚本周围使用双引号,然后将对变量进行求值:

script{
  powershell ("""
   # Example echo "${approverDEV['APPROVER']}"
   # BUT THIS DOESN'T WORK :(
  """)
}

在Groovy中使用三重双引号被称为“多行GString”。在GString中,变量将在创建实际字符串之前进行求值

未计算单引号字符串。使用双引号:
“$a”“”
但这不是问题所在,而是方法,然后不清楚问题出在哪里…@daggett对不起,我的错,你有理由。谢谢谢谢你有理由@达吉特。谢谢,我还有同样的问题。如果我在执行作业时在内部声明变量powshell,我会遇到下一个问题:没有这样的属性:类的参数:WorkflowScript脚本{powershell(“$Params=”Hello Word!””)}不太确定,但听起来好像变量不在范围内。它是Groovy变量吗?否则,如果要将其用作powershell变量,则可能需要将其删除。