Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理脚本-带有的Echo变量\n_Batch File - Fatal编程技术网

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只是两个命令。我不会把它们算作换行符。而且你不能将它们保存在变量
中,嵌入的数据只能通过延迟处理来正确处理!扩展\n
,然后将其与
set myvar=hello一起使用\N世界