如何在cmd.exe中将stderr重定向到null

162

我有一个应用程序,它会向stderr输出很多噪音并且会真正地减慢应用程序的执行速度。我希望将该输出重定向到空设备。在cmd.exe中是否可能实现这一点?


25
像这样:命令 2> nul - Naytzyrhc
2
请参考超级用户的相关问题:> /dev/null for Windows - hippietrail
9
要完全静音一个命令(包括标准输出和标准错误),可以使用 @command > nul 2>&1 - kofifus
[su]是一个更好的地方,可以询问关于如何使用您的计算机的问题。 - undefined
1个回答

225
Your DOS command 2> nul

阅读页面使用命令重定向运算符。除了Tanuki Software提到的"2>"结构外,它还列出了一些其他有用的组合。


1
然而,以下命令几乎与某些人的期望相反:copy foo.txt con >> bar 2>nul。bar 文件将包含文本“one file(s) copied”,而控制台将包含“foo.txt”的内容。 - Patrick Fromberg
1
@Mawg 我不认为它会产生十个空行。这可能与你的使用场景有关。例如:@for /L %C in (1,1,10) do @type nonexistent 2> nul不会产生十个空行。 - atzz
2
@PatrickFromberg 这是因为 con 不是 STDOUT 的同义词;它是与实际控制台相关联的伪文件,因此不受重定向的影响。有点类似于 Linuxish (cat /proc/version > /dev/tty) > bar:外部重定向不会影响内部重定向。 - atzz
1
@SamHabiel并没有完全正确。这个问题是关于“stderr”的。 - atzz
3
参考页面在这里:https://technet.microsoft.com/zh-cn/library/bb490982.aspx - legalize
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接