批处理文件输出“系统找不到指定的文件”。而不是将错误重定向到nul
set /p firstline=<text.txt >nul 2>nul
pause要取消显示错误消息,我需要做些什么
发布于 2012-08-07 04:53:47
使用此代码重定向将被忽略。我不确定为什么,我猜是因为错误发生在重定向机制本身,以后的redirs将永远不会运行。
要在预期出现错误的位置强制分隔重定向,请使用():
(set /p firstline=<text.txt) >nul 2>nul您还可以考虑使用不同的语法将所有内容重定向到一个输出:
(set /p firstline=<foo2.txt) >nul 2>&1发布于 2012-08-07 04:10:40
这似乎就是(在Win7上测试的)情况。看起来像是一个类似bug的特性。:-)如果您的批处理文件足够简单,您可以通过使用2>nul (即foo.cmd 2>nul)调用批处理文件来解决此问题。
或者,您可以只将该行放入自己的批处理文件(比如setfirstline.cmd)中,然后使用“父”批处理文件中的call setfirstline.cmd 2>nul。很老套,但很实用。
https://stackoverflow.com/questions/11832820
复制相似问题