Batch file 从批处理文件到jenkins管道检索变量的输出/状态
我正在尝试通过将env variable初始设置为true来检索jenkins管道的bat中可用变量的输出/状态 我的期望是,基于在bat内部分配的变量值,即status=false,下一阶段无法执行,因为在该阶段中给出表达式时:Batch file 从批处理文件到jenkins管道检索变量的输出/状态,batch-file,jenkins-pipeline,Batch File,Jenkins Pipeline,我正在尝试通过将env variable初始设置为true来检索jenkins管道的bat中可用变量的输出/状态 我的期望是,基于在bat内部分配的变量值,即status=false,下一阶段无法执行,因为在该阶段中给出表达式时: pipeline { agent any environment{ STATUS='TRUE' } stages { stage('test1') { steps {
pipeline {
agent any
environment{
STATUS='TRUE'
}
stages {
stage('test1') {
steps {
bat '''set status=FALSE
echo %status%'''
echo "$status"
}
}
stage('test2') {
when{
environment name: 'STATUS', value: 'TRUE'
}
steps {
input message: 'Push', ok: 'GO!!'
}
}
}
}
对于bat执行,我当前获得的输出为o/p:false,下一步提供的输出为true。echo$状态处于管道中,随着环境状态的更改,节点上的操作将完成。好吧,这不会反映在管道本身中
您可以使用returnStdout:true并在管道中维护此变量状态
def script = '''set status=FALSE
echo %status%'''
def status = bat(script: script, returnStdout: true)
echo "$status"
echo$状态处于管道中,随着环境状态的变化,节点上的状态也会发生变化。好吧,这不会反映在管道本身中
您可以使用returnStdout:true并在管道中维护此变量状态
def script = '''set status=FALSE
echo %status%'''
def status = bat(script: script, returnStdout: true)
echo "$status"
在上面的hakamairi回答之后,@echo off应该添加到脚本字符串的开头,否则returnStdout:true也将返回命令提示符
此外,如果在其他地方使用分配的状态变量的值,则在bat脚本末尾的结束括号后添加.trim可能会很有用,因为不希望在结尾处换行。在上面的hakamairi回答之后,应将@echo off添加到脚本字符串的开头,否则returnStdout:true也将返回命令提示符 此外,如果在其他地方使用分配的状态变量的值,则在bat脚本的结束处添加.trim(在结束处换行是不可取的),可能会证明它是有用的