错误消息仍然显示为> nul 2> nul

时间:2012-08-06 17:11:20

标签: file batch-file cmd

批处理文件输出“系统找不到指定的文件”。而不是将错误重定向到nul

set /p firstline=<text.txt >nul 2>nul
pause

我需要做什么来抑制错误消息

2 个答案:

答案 0 :(得分:1)

使用此代码重定向将被忽略。我不知道为什么,我的猜测是因为错误发生在重定向机制本身,后来的redirs永远不会运行。

强制分离您期望错误的重定向 - 使用():

(set /p firstline=<text.txt) >nul 2>nul

您还可以考虑使用不同的语法将所有内容重定向到一个ouptut:

(set /p firstline=<foo2.txt) >nul 2>&1

答案 1 :(得分:0)

看起来确实如此(在Win7上测试过)。看起来像一个类似bug的功能。 :-)如果您的批处理文件足够简单,您可以通过使用2>nul(即foo.cmd 2>nul)调用批处理文件来解决此问题。

或者,您可以将该行放在自己的批处理文件中(例如,setfirstline.cmd),并使用“父”批处理文件中的call setfirstline.cmd 2>nul。 Hacky,但功能齐全。