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
我在 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