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~ 删除了引号。