Batch脚本——使用\n回显变量

34 浏览
0 Comments

Batch脚本——使用\n回显变量

这个问题在这里已经有答案了:

如何在批处理文件中打印换行符?

我有一个批处理脚本变量如下:

Set myvar=hello\nworld

当我echo myvar时, 我得到一个包含hello\\nworld的字符串。如何让它解析我的\\n并将其解释为一个新的换行符, 以便我可以在两行中打印?

admin 更改状态以发布 2023年5月25日
0
0 Comments

想象一下,有不同的编程语言,\n不总是意味着"新行" ;)。

echo hello&echo.world如果你想在一行代码中实现这个操作,它可以完成你想要的。否则,它是

echo hello
echo.world

在批处理中,echo.表示新行,或者如果.后面跟随一些文本,则表示在新行中回显文本。

0
0 Comments

如果你的问题真的是"如何在变量中嵌入换行符?",那么这就是答案:

@echo off
setlocal EnableDelayedExpansion
set myvar=hello^
world
echo !myvar!

一个脱字符^表示字面上取下一个字符,但在这种情况下,“下一个字符”就是一个换行符,在变量中它的字面意义被保留,并在接下来的行(通常情况下)继续执行命令,所以set命令在world行结束。只有通过延迟的!expansion!才能正确处理嵌入的

嵌入的在其他情况下也被正确处理,例如:

for /F %%a in ("!myvar!") do echo %%a

0