windows batch: echo a multi-line variable with special characters (来自jenkins的JiraRelease Notes)

windows batch: echo a multi-line variable with special characters (JiraRelease Notes from jenkins)

我在 Jenkins 中使用 JiraPlugin 生成 ReleaseNotes,我在 Jenkins 中的构建作业使用批处理文件。

在执行的批处理文件中,当我刚刚发出一个 set 时,我可以看到变量存在于 Jira 发行说明中。但它是多行的,并且以 # 字符开头。

我的目标是做一个 echo %RELEASE_NOTES_JENKINS% > ReleaseNotes.txt

但这永远行不通。我尝试在变量周围使用 !! 而不是 %% 但这也不起作用。当我尝试回显变量时,我得到 ECHO is off.。 同样,set 确实显示了正确的内容:

RELEASE_NOTES_JENKINS=# New Feature
 - [XXXX-3525] Blahblahblah
 - [XXXX-3268] Blahblahblah
 - [XXXX-3119] Blahblahblah
# UNKNOWN
 - [XXXX-3545] [security] Blahblahblah
...

Jenkins 在 Windows 7 服务器上运行。 这是特定于 windows 批处理 (cmd.exe) 的,因为当 Jenkins 在 Linux 环境中运行时,只需将变量通过管道传输到文件即可。

关于如何使这项工作有任何想法吗?

尝试

SET RELEASE_NOTES_JENKINS > ReleaseNotes.txt

而不是 echo

延迟扩展应该有效:

setlocal enableDelayedExpansion
echo !RELEASE_NOTES_JENKINS!>releasenotes.txt