Jenkins pipeline中bat或者shell命令执行结果,赋值给变量,变量不生效解决方法

例如:想利用bat脚本查询出Git_commit号,赋值给变量,下面的pipeline语句用到此变量,通过直接赋值的方式,下一条语句是无法获取到变量值的

此种写法:

//从项目readme中读取Git_Commit号
 Git_Commit =bat label: '', script: 'compile_scripts\\git_commit.bat %svn_project% %svn_branch%'
                  
 //编译源码,其中Git_commit 获取不到值
 bat label: '', script: 'python compile_scripts\\firmware_compile.py %svn_project% %svn_branch% %svn_revision% %Git_commit%'

更改为:将代码写到bat“”“”“”“”“”中

stage('compile source code') {
        
            steps {
                
                script {
                    bat """
                        FOR /F %%i IN ('compile_scripts\\git_commit.bat %svn_project% %svn_branch%') DO @set Git_commit=%%i
                        python compile_scripts\\firmware_compile.py %svn_project% %svn_branch% %svn_revision% %Git_commit%
                        xcopy /s/y/i/f "%svn_project%\\%svn_branch%\\*.zip" "D:\\firmware_history"
                    """
                }
            }
        }

版权声明:本文为qingtianqingfeng原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。