是否有可能在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/但是这可能会崩溃你的批处理文件。