因此,当我将批处理文件中的文本回显到文本文件时,我可以转义特殊字符而不会出现问题。但是,当我回显某个字符组合时,似乎似乎无法找到一种方法来回避它只是回显屏幕而不是回显文件的事实。
这是起作用的...
echo firsttest^=uncpath>>test.txt
echo [secondtest]>>test.txt
这是行不通的...
echo thirdtest^=1>>test.txt
echo fourthtest^=2>>test.txt
我尝试转义一个和两个箭头字符,但还是不能。
有什么建议吗?我敢肯定它与使用“ 1>”和“ 2>”的控制台输出的标准重定向有关,但只是不知道如何解决。
感谢。
答案 0 :(得分:1)
您的分析是正确的。有两种主要的解决方案:
(echo thirdtest=1)>>test.txt
(echo fourthtest=2)>>test.txt
和
>>test.txt echo thirdtest=1
>>test.txt echo fourthtest=2
(注意:=
不是需要转义的特殊字符之一)
在行中放置重定向并不重要,如echo on
所示。 (如果您喜欢感到困惑,请输入echo hello>file.txt world
,然后输入type file.txt
)
另一注:如果您echo
多行,则更快:
(
echo first line
echo second line
echo third line
)>>test.txt
(原因:只需要一个磁盘访问(读/修改/写),而不是对每一行都做相同的操作)您不会只用三行就注意到它,而是想写几百行(例如一个循环)。时间节省将是巨大的。