0

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

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

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

4

2 回答 2

1

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

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

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

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

(set /p firstline=<foo2.txt) >nul 2>&1
于 2012-08-06T20:53:47.383 回答
0

情况确实如此(在Win7上测试)。似乎是一个类似错误的功能。:-) 如果您的批处理文件足够简单,您可以通过使用2>nul(ie, foo.cmd 2>nul) 调用您的批处理文件来解决这个问题。

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

于 2012-08-06T20:10:39.723 回答