Window 批处理:回显重定向到 `\n` 作为文字然后换行
Window Batch: Echo redirecting to `\n` as literal then new line
请慢慢阅读问题,它很奇怪,但却是真实的。
在 windows 命令提示符中,我希望 echo
重定向以将 \n
作为新行打印到输出文件,但采用文字(\n
)而不是新行行。
echo "A\nB\n\C\n" > temp.txt
如果我打开 temp.txt
,我看到输出为
A\nB\n\C
而不是,
A
B
C
有类似的问题,比如 Stack Overflow 上的 this and this。但是,none 的答案符合我的目的。
我尝试了其他各种选项,但没有用:
echo $'A\nB\nC' > temp.txt
echo $'A\nB\nC' > temp.txt
等等
所以,我的问题是,是否有实现我想在重定向中实现的换行?
回复如下:How can you echo a newline in batch files?
所以对于你的情况:
(echo A & echo.B & echo.C) > txt
甚至...来自同一主题:
set n=^&echo.
echo hello %n% world
@ECHO OFF
SETLOCAL
SET "var=A bucket of eels\nB\nC"
(
FOR %%a IN ("%var:\n=" "%") DO ECHO(%%~a
)>u:\x.txt
TYPE u:\x.txt
GOTO :EOF
U:
是我的试驾
这将显示对某些符号的一些敏感性。
它的工作原理是将每个 \n
替换为 " "
,然后将结果字符串括在 "
中。这形成了一个带引号的字符串列表,因此 for
对每个带引号的字符串执行 echo
。 ~
删除了引号。
请慢慢阅读问题,它很奇怪,但却是真实的。
在 windows 命令提示符中,我希望 echo
重定向以将 \n
作为新行打印到输出文件,但采用文字(\n
)而不是新行行。
echo "A\nB\n\C\n" > temp.txt
如果我打开 temp.txt
,我看到输出为
A\nB\n\C
而不是,
A
B
C
有类似的问题,比如 Stack Overflow 上的 this and this。但是,none 的答案符合我的目的。
我尝试了其他各种选项,但没有用:
echo $'A\nB\nC' > temp.txt
echo $'A\nB\nC' > temp.txt
等等
所以,我的问题是,是否有实现我想在重定向中实现的换行?
回复如下:How can you echo a newline in batch files?
所以对于你的情况:
(echo A & echo.B & echo.C) > txt
甚至...来自同一主题:
set n=^&echo.
echo hello %n% world
@ECHO OFF
SETLOCAL
SET "var=A bucket of eels\nB\nC"
(
FOR %%a IN ("%var:\n=" "%") DO ECHO(%%~a
)>u:\x.txt
TYPE u:\x.txt
GOTO :EOF
U:
是我的试驾
这将显示对某些符号的一些敏感性。
它的工作原理是将每个 \n
替换为 " "
,然后将结果字符串括在 "
中。这形成了一个带引号的字符串列表,因此 for
对每个带引号的字符串执行 echo
。 ~
删除了引号。