Windows 未重定向if-else命令的输出

Windows 未重定向if-else命令的输出,windows,batch-file,cmd,Windows,Batch File,Cmd,当我运行命令时: if exist file.txt (echo yes) else (echo no) > "output.txt" 2>&1 在命令提示中,如果“file.txt”不存在,则会创建一个文件“output.txt”,读取“no”,而如果“file.txt”存在,则会将“yes”输出到控制台窗口,甚至不会创建文件“output.txt”。 我还执行了一个批处理文件: if exist file.txt (echo yes) else (e

当我运行命令时:

if exist file.txt (echo yes) else (echo no) > "output.txt" 2>&1
在命令提示中,如果“file.txt”不存在,则会创建一个文件“output.txt”,读取“no”,而如果“file.txt”存在,则会将“yes”输出到控制台窗口,甚至不会创建文件“output.txt”。 我还执行了一个批处理文件:

if exist file.txt (echo yes) else (echo no) > "output.txt" 2>&1
pause
结果是一样的,当“file.txt”确实存在时,“yes”只出现在控制台窗口中。 原因是什么?如何使所有输出一致地重定向到“output.txt”

(if exist file.txt (echo yes) else (echo no) )> "output.txt" 2>&1
我认为这个问题只是一个插曲的问题

我认为问题只是括号的问题,

…可以简化为If Exist file.txt Echo yes Else Echo no 1>output.txt,因为不应该有标准输出,而Else命令不需要用括号括起来…可以简化为If Exist file.txt Echo yes Else Echo no 1>output.txt,因为不应该有标准输出,Else命令不需要加括号。