为什么 cmd 输出不重定向到批处理文件中的 nul?

Why is cmd output not redirecting to nul in batch file?

我正在编写一个批处理脚本来检测 java 是否全局安装在一台电脑上。 正在使用:

java -version>nul
if not %errorlevel%==0 ( echo script requires java)

也尝试使用 cmd /c java -version>nul

脚本工作正常,但当 java 存在且

时控制台输出 java 版本

'java' is not recognized as an internal or external command, operable program or batch file.

当 java 不存在时。我正在尝试取消此输出,并静静地进行检测。我做错了什么?

尝试在命令中添加 2>

java -version 2> nul