是否可以在批处理文件中的回显行中添加新行字符?

时间:2009-11-12 10:18:02

标签: windows batch-file

是否可以在批处理文件的回显行中添加换行符?

基本上我希望能够做到相同的:

echo Hello\nWorld

您可以在Linux中轻松完成此操作,但我无法解决如何在Windows中执行此操作。

7 个答案:

答案 0 :(得分:35)

echo.打印一个空行。

示例:

echo Hello
echo.
echo world

打印

Hello

world

答案 1 :(得分:19)

可以通过单个回声解决。

您需要换行符\n。 有多种方法可以将新行添加到echo

1)此示例使用多线插入符号在命令中添加换行符,
空行是必需的

echo Hello^

world

2)下一个解决方案首先创建一个包含一个换行符的变量。

set \n=^


rem ** Two empty lines are required

或者使用略微修改的版本

创建新行
(set \n=^
%=DONT REMOVE THIS=%
)

并将此字符用于延迟展开

setlocal EnableDelayedExpansion
echo Hello!\n!world

要使用扩展百分比的换行符,您需要创建更复杂的序列

echo Hello^%\n%%\n%world

或者您可以使用New line hack

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


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

但只有新行的延迟扩展才能可靠,也在引号内。

答案 2 :(得分:13)

经过一些实验后,我发现可以在不发出How can you echo a newline in batch files?所述的两个单独的echo命令的情况下完成。但是要使其工作,您需要一个不将CR转换为CR + LF的文本编辑器。

类型:

@echo First Line

然后打开NumLock,按住ALT键并在释放ALT之前在数字键盘上键入10(您必须使用数字键盘,而不是顶行数字键)。这将插入一个CR字符。然后键入第二行。根据您的编辑器以及它与CR + LF相比如何处理CR,您可能会得到:

@echo First Line◙Second Line

@echo First Line
Second Line

这可以从命令行工作,只要文本编辑器不将CR转换为CR + LF(Windows / DOS编辑器除非您将它们配置为不执行),否则它将在批处理文件中工作。如果CR转换为CR + LF,或者只使用LF,则第二行被解释为新命令。

但是,我不明白为什么这比简单的更好:

@echo First Line
@echo Second Line

答案 3 :(得分:5)

Ahaha,

我想我已经找到了足够接近的东西......

echo hello&echo.&echo world

产地:

您好

世界

答案 4 :(得分:2)

<强>回声。 要么 的回声(

将执行空行新行。希望这有用。

答案 5 :(得分:0)

我发现这个信息非常丰富,所以想要使用提供的答案发布一个更好的例子

这提供了格式良好的用法消息

if "%1" == """" goto usage

:usage
 echo  USAGE: %0 [Set properties using -D flag] [Ant Task to Run]  &
 echo.                                                             &
 echo        Availble Command line properties                      &
 echo        --------------------------------                      &  
...

答案 6 :(得分:-1)

我认为这是不可能的。你只能尝试一个ascii字符: http://www.asciitable.com/ 但这可能会导致批处理文件崩溃。