是否有可能在batch file中的回波行中放置一个新的行字符?

是否有可能在batch file中的回波行中放置一个新的行字符?

基本上我想能够做到相当于:

echo Hello\nWorld 

在Linux中你可以很容易地做到这一点,但是我不知道如何在Windows中做到这一点。

echo. 打印一个空行。

例:

 echo Hello echo. echo world 

版画

 Hello world 

它可以用一个回声解决。

你需要换行字符\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 

或者你可以使用新行黑客

 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. 

但是只有换行的延迟扩展才是可靠的,也在报价之内。

经过一些实验后,我发现可以这样做,而不需要发出两个独立的echo命令,如“ 怎样在批处理文件中回显换行符”所述? 。 但是,要使其工作,您将需要一个文本编辑器,不会将CR转换为CR + LF。

类型:

 @echo First Line 

然后在NumLock打开的情况下,按住ALT键并在数字键盘上输入10,然后释放ALT( 必须使用数字键盘,而不是顶行数字键)。 这将插入一个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 

Ahaha,

我想我已经做出了足够接近的事情

 echo hello&echo.&echo world 

生产:

你好

世界

回声。回声(

将做空白的新行。 希望这是有帮助的。

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

这提供了一个很好格式化的用法消息

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

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