Git 如何在jenkins管道中检索子目录(在windows从属节点上)的短提交id

Git 如何在jenkins管道中检索子目录(在windows从属节点上)的短提交id,git,batch-file,jenkins-pipeline,Git,Batch File,Jenkins Pipeline,在我的git存储库中有一个子文件夹abc。我需要子文件夹的短提交id。此存储库位于windows从属节点上。我正在尝试从jenkins文件中检索短提交id 我可以使用以下命令检索git存储库的短提交id: def SHORT_COMMIT_ID_APP = bat (returnStdout: true, script: "@git log -n 1 --pretty=format:\'%%h\'").trim() 但是如果我将--abc(abc是git存储库中的子文件夹)添加到同一

在我的git存储库中有一个子文件夹abc。我需要子文件夹的短提交id。此存储库位于windows从属节点上。我正在尝试从jenkins文件中检索短提交id

我可以使用以下命令检索git存储库的短提交id:

def SHORT_COMMIT_ID_APP = bat 
    (returnStdout: true, script: "@git log -n 1 --pretty=format:\'%%h\'").trim()
但是如果我将
--abc
(abc是git存储库中的子文件夹)添加到同一个命令中,它将返回一个空值

def SHORT_COMMIT_ID_APP = bat 
    (returnStdout: true, script: "@git log -n 1 --pretty=format:\'%%h\' -- abc").trim()
当我直接在从属节点上运行以下命令时

git log -n 1 --pretty=format:'%h' -- abc
它返回正确的值short commit id


如何在jenkins上获取子文件夹的短提交id?

在--
%%h
代表什么?之前添加一个空格@aschipfl:OP正在使用命令解释器,该解释器出于任何目的“吃掉”一层
%%
符号,同样的方法,
make
吃一个美元符号,因此如果你想把
$
传递给一个命令,你必须拼写它
$
。在这种情况下,要将
%h
传递给
git log
,他必须拼写它
%h
。谢谢,@torek,因此它不是Windows命令提示符中a的元变量
%h
;然后,我看不到任何与标记的连接…@aschipfl:我是批处理脚本新手,希望编写一个用于运行git命令的abatch脚本。有轻微的输入错误,在上面的查询中,从节点上的以下命令工作正常:git log-n 1--pretty=format:“%h”-abc但无法从Jenkins运行在--%%h代表什么?@aschipfl:OP正在使用一个命令解释器,该解释器出于任何目的“吃”一层
%%
符号,同样的方法,
make
吃一个美元符号,因此如果你想把
$
传递给一个命令,你必须拼写它
$
。在这种情况下,要将
%h
传递给
git log
,他必须拼写它
%h
。谢谢,@torek,因此它不是Windows命令提示符中a的元变量
%h
;然后,我看不到任何与标记的连接…@aschipfl:我是批处理脚本新手,希望编写一个用于运行git命令的abatch脚本。有轻微的输入错误,在上面的查询中,从节点上的以下命令工作正常:git log-n 1--pretty=format:“%h”-abc但无法从jenkins运行它