Batch file 批处理脚本-带有的Echo变量\n
我有一个批处理脚本变量,如下所示:Batch file 批处理脚本-带有的Echo变量\n,batch-file,Batch File,我有一个批处理脚本变量,如下所示: Set myvar=hello\nworld 当我回显myvar时,我会从字面上看到整个hello\n世界。我如何要求它解析我的\n并将其作为一个新行字符勇敢地表示出来,这样我就可以在两行中重复它?想象一下,有不同的编程语言,\n并不总是意味着“新行”;) echo hello&echo.world如果你想把它放在一行代码中,它会做你想做的事情。否则,它就是 echo hello echo.world 在批处理echo中。表示新行,或者如果后面跟着一些文本
Set myvar=hello\nworld
当我回显myvar时,我会从字面上看到整个hello\n世界。我如何要求它解析我的\n并将其作为一个新行字符勇敢地表示出来,这样我就可以在两行中重复它?想象一下,有不同的编程语言,
\n
并不总是意味着“新行”;)
echo hello&echo.world
如果你想把它放在一行代码中,它会做你想做的事情。否则,它就是
echo hello
echo.world
在批处理
echo中。
表示新行,或者如果
后面跟着一些文本,则表示在新行中回显文本。如果您的问题的真正意思是“如何在变量中嵌入新行字符?”,则回答如下:
@echo off
setlocal EnableDelayedExpansion
set myvar=hello^
world
echo !myvar!
插入符号^
字符意味着按字面意思取下一个字符,但在这种情况下,“下一个字符”只是一个新行,因此它在变量中按字面意思取下,并且命令继续执行,直到下一行结束(与通常一样),因此set
命令在world
行之后结束。嵌入的
只能通过延迟方式正确处理!扩展
嵌入的
在其他情况下正确处理;例如:
for /F %%a in ("!myvar!") do echo %%a
您不应使用
echo.
留下空行;改用echo/
。参见::“技术上,ECHO是CPU周期的严重浪费。当脚本遇到“ECHO”时,它不会立即打印空白行,而是首先遍历%PATH %上的每个目录,查看是否有一个叫ECHO的文件要执行”.<代码> EngHello和ECHEC.Works只是两个命令。我不会把它们算作换行符。而且你不能将它们保存在变量中,嵌入的数据只能通过延迟处理来正确处理!扩展在下一行中,您将演示如何将其与FOR循环参数一起使用:-)您可以定义一个换行变量\n
,然后将其与set myvar=hello一起使用\N世界