Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 从批处理文件到jenkins管道检索变量的输出/状态_Batch File_Jenkins Pipeline - Fatal编程技术网

Batch file 从批处理文件到jenkins管道检索变量的输出/状态

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 {

我正在尝试通过将env variable初始设置为true来检索jenkins管道的bat中可用变量的输出/状态

我的期望是,基于在bat内部分配的变量值,即status=false,下一阶段无法执行,因为在该阶段中给出表达式时:

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(在结束处换行是不可取的),可能会证明它是有用的