batch-file - 批处理文件中,echo如何能换行?

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

我想做一些类似的事情:

> echo hellonworld

它将输出:

hello
world

时间:

echo hello & echo.world

这意味着你可以将& echo.定义为换行符的常量。

使用


echo hello
echo.
echo world

在这里,创建一个.bat文件,其中包含以下内容:


@echo off

REM Creating a Newline variable (the two blank lines are required!)
set NLM=^


set NL=^^^%NLM%%NLM%^%NLM%%NLM%
REM Example Usage:
echo There should be a newline%NL%inserted here.

echo.
pause

你应该看到如下所示的输出:


There should be a newline
inserted here.

Press any key to continue . . .

你只需要REM语句之间的代码,显然。

cmd/bat文件中有一个标准的特性echo:来写空行,它模仿cmd输出中的新行:


@echo off
@echo line1
@echo:
@echo line2

上述文件的输出:

 
line1

line2

 

回显某些内容以重定向到文件时,多个回显命令将无法工作,我想> > redirector是个不错的选择:

echo hello > temp
echo world >> temp

就像Grimtron建议的-下面是一个定义它的快速示例,


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

输出


C:>test.bat
hello
world

如果需要将结果放到文件中,可以使用,


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

你也可以这样做


(for %i in (a b "c d") do @echo %~i)

输出将是

 
a
b
c d

 

注意,当将它放入批处理文件中时,'%'应该两个。


(for %%i in (a b "c d") do @echo %%~i)

如果有人来这里是因为他们希望从MINGW make makefile echo一个空行,我用过,

@cmd /c echo.

简单地使用echo.会导致 process_begin: CreateProcess(NULL, echo., ...) failed. 错误消息。

...