如何引用 Jenkins 的 bat-Command 的路径?

How to quote a path for Jenkins' bat-Command?

我在构建要在 Windows 上执行的 bat-Command 时遇到问题(通过 Jenkin 的声明性管道)。变量 path 中的路径可能包含空格,因此需要用引号引起来。 经过一番谷歌搜索后,我想到了这个:

 rjc = bat(script: "\"${path}\"" ${cmdline}" , returnStatus: true)

但是报错如下:

WorkflowScript: 89: unexpected token: $ @ line 89, column 50.
           rjc = bat(script: "\"${path}\"
                                 ^

当您使用双反斜杠 (\) 时,第一个斜杠实际上转义了第二个斜杠 - 这意味着它被视为反斜杠字符而不是转义运算符。所以双引号 (") 实际上没有被转义,然后字符串被关闭并且美元符号是意外的,因为它没有上下文。

您真正想要的是转义双引号,以便将其用作字符而不是关闭字符串。为此,您只需要一个反斜杠:

bat(script: "\"${path}\" ${cmdline}" , returnStatus: true)