如何在Jenkinsfile中使用returnStdout标志true从执行的批处理命令的输出中删除命令本身(groovy)

jgovgodb  于 2022-11-02  发布在  Jenkins
关注(0)|答案(1)|浏览(239)

我正在为我的.net项目使用Jenkins Pipeline。我不想使用默认的内部版本号,所以我尝试在groovy中使用以下命令设置内部版本号。

def short_hash = bat(script: 'git log --pretty=format:\'%%h\' -n 1', returnStdout: true)
currentBuild.displayName = '0.0.' + "${env.BUILD_NUMBER}" +'.' + short_hash

我观察到的是short_hash在结果沿着包含了batch命令的值。
这里的jenkins文档声明“script执行批处理脚本。允许多行。当使用returnStdout标志时,您可能希望在它前面加上@,以免命令本身包含在输出中。”
我尝试使用@,但执行时发生错误。有任何指标吗?

ui7jx7zq

ui7jx7zq1#

def short_hash = bat(script: '@git log --pretty=format:\'%%h\' -n 1', returnStdout: true)
currentBuild.displayName = '0.0.' + "${env.BUILD_NUMBER}" +'.' + short_hash

在git命令前放置@

相关问题