我正在使用bat脚本尝试将多行写入文本文件。但是,在一种情况下,我希望写下一个字符。
以下是代码:
@echo off
@echo san policy=onlineall> test.txt
@echo select disk 1>> test.txt
@echo online disk>> test.txt
以下是生成的文本文件(test.txt)
san policy=onlineall
select disk
online disk
为什么" 1"结果代码中缺少?
答案 0 :(得分:3)
您可以使用>
重定向不同的流。它们通过数字区分,0是stdin,1是stdout,2是stderr,列出预定义的。
所以为了回答你的问题,当你写1>
时,windows认为你想要回显到流1(无论如何这是默认的)。一种可能的解决方案是简单地在它们之间插入一个空格,但也会输出这个空间。但是,您也可以这样写:
>>test.txt echo select disk 1
答案 1 :(得分:3)
使用插入符号转义1
也可以:
@echo off
@echo san policy=onlineall> test.txt
@echo select disk ^1>> test.txt
@echo online disk>> test.txt