如何从批处理文件输出中插入换行符?

我想做的事情是:

echo hello\nworld

这将输出:

hello
world

当前回答

当回显某些内容以重定向到文件时,多个回显命令将不起作用。我认为“>>”重定向器是一个不错的选择:

echo hello > temp
echo world >> temp

其他回答

如果你需要把结果放到一个文件中,你可以使用:

(echo a & echo: & echo b) > file_containing_multiple_lines.txt

就像Grimtron建议的那样-这里有一个简单的例子来定义它:

@echo off
set newline=^& echo.
echo hello %newline%world

输出

C:\>test.bat
hello
world

简单的

set nl=.
echo hello
echo%nl%
REM without space ^^^
echo World

结果:

hello
world

这对我来说很有效,不需要延迟扩展:

@echo off
(
echo ^<html^> 
echo ^<body^>
echo Hello
echo ^</body^>
echo ^</html^>
)
pause

它像这样写输出:

<html>
<body>
Hello
</body>
</html>
Press any key to continue . . .

请注意,所有解决方案使用光标定位根据控制台虚拟终端序列,光标定位与:

Sequence Code Description Behaviour
ESC [ <n> E CNL Cursor Next Line Cursor down <n> lines from current position

只有在没有到达控制台窗口底部时才能工作。

在底部没有空间来向下移动光标,所以它只是向左移动(与CRLF的CR),之前打印的行从它的开始被覆盖。