批量展望未来?变量
问题描述:
如何实现这一目标?批量展望未来?变量
set newline=^& echo.
set header=my header^%newline% %abc%^%newline%%def%^%newline%end
...
set abc=some text
set def=some more text
echo %header%
...
set abc=hello
set def=there
echo %header%
预期输出:
my header
some text
some more text
end
my header
hello
there
end
现在输出:(不显示ABC和DEF值)
my header
end
my header
end
在此先感谢!欣赏任何解决方案。
更新: 我正在编写一个脚本,用于总结执行结果并在输出的第一行显示该脚本,例如,
c:\> myScript.bat
----------------------------------------
Execution failed with cmd1=UP, cmd2=DOWN
cmd2 failed
----------------------------------------
COMMAND: cmd1
[output of cmd1]
cmd1 result is "UP"
COMMAND: cmd2
[outout of cmd2]
cmd2 result is "DOWN"
答
@echo off
REM Creating a Newline variable (the two blank lines are required!)
set NLM=^
set NL=^^^%NLM%%NLM%^%NLM%%NLM%
:::::
set header=my header%NL% %abc%%NL%%def%%NL%end
尝试。
或者
setlocal EnableDelayedExpansion
(set \n=^
%=Do not remove this line=%
)
set header=my header!\n! %abc%!\n!%def%!\n!end
据我所知,这是无法实现的。 –
它是你遇到问题的'换行符'(可能是[npocmaka的回答](https://stackoverflow.com/a/46789104/2096401)),或者是能够改变被取代的进入'头部'在飞行中? (**提示**:显示你得到/描述它是如何错误的,以及显示你想要什么)。如果是后者,我怀疑你不得不在''call:doheader'函数内部设置'set header = ...'(也可能是'echo%header%'),以便每当'abc'或“def”变化。 – TripeHound