Windows:将stdout和stderror重定向为无


33

我有一个正在运行的命令会产生大量输出,我想使输出静音而不写入文件。我已经使用以下命令将所有输出发送到文件,但是再次,我不需要任何文件输出:

command > out.txt 2>&1

我以前command > /dev/null在CentOS机器上使用过,但是在Windows上找不到类似的东西。


希望您command > /dev/null在CentOS上使用过。
Kurt Pfeifle

@pipitas,无论我做了什么工作:D
Alec Gorge 2010年

如果您确实command > /bin/null在CentOS上使用过,那么您已经在/bin/null系统上创建了一个通用文件文件。您可能会说“有效!” , 如果你想。现在,此文件包含的stdout stderr输出command。通常,/bin/只有可执行文件。通常,只有root用户才能在此处创建文件。因此,如果该文件在那里,您确实以root用户身份运行命令... /bin/null通常不存在-并且/dev/null(我提到)通常用作“黑色整体”,不需要的输出应在其中消失
Kurt Pfeifle 2010年

好点,我没想到。但是,我很确定那只是我的错误记忆,因为当时我在Windows上。
亚历克峡谷

Answers:


47

你要command > nul 2>&1


谢谢!这样可行。我需要等待12分钟才能接受答案(服务器故障要求)!
亚历克峡谷

7
这仅重定向标准输出。您还需要> nul 2>&12> nul杀死stderr。
grawity 2010年

是的,我知道这一点,但是感谢您为其他访问此问题的人提到它!
亚历克峡谷

只是添加,我在使用时遇到权限被拒绝的错误:sudo主机名-f 2> nul,而以下命令运行良好:sudo主机名-f 2> / dev / null对于使用nul时遇到权限问题的用户
Ranvir

1
@AminM nul是Windows的空输出(即丢弃输出)的特殊关键字。在基于* nix的系统上(例如Ranvir所指),它们使用特殊文件/dev/null。的>意思是“重定向”(和2>装置重定向缓冲区2中-这是误差输出)
DOKTORĴ

3

你要 command > null 2>&1

nul仅在命令提示符下null工作,而在PowerShell中工作

Null可以在和cmd.exe中使用,以实现兼容性,但会创建一个名为null的文件。


3
命令提示符为cmd.exe。'> null'将创建一个名为'null'的文件,其中包含您要从cmd.exe和PowerShell中定向的内容。
Smythe先生,2015年

我不知道。适当地编辑了我的答案。
空战
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.