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

如何从使用Jenkinsfile(groovy)中的returnStdout标志true执行的批处理命令的输出中删除命令本身,jenkins,jenkins-pipeline,cloudbees,Jenkins,Jenkins Pipeline,Cloudbees,我正在为我的.net项目使用Jenkins管道。我不想使用默认的版本号,所以我尝试在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的值是batc

我正在为我的.net项目使用Jenkins管道。我不想使用默认的版本号,所以我尝试在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 command和结果

jenkins文档声明“脚本 执行批处理脚本。允许多行。使用returnStdout标志时,您可能希望在其前面加@,以免命令本身包含在输出中。”


我尝试使用@,但它在执行时出错。有指针吗?

您在哪里添加
@
字符?出现了哪个错误?由于
@
是“不回显命令行”的
cmd
前缀,并且命令是
git
,因此应该是:
。。。脚本:'@git…
谢谢@Stephan,成功了。我用的是@before。