![相当于 Windows shell 中的 (foo &>/dev/null &)](https://linux22.com/image/1414426/%E7%9B%B8%E5%BD%93%E4%BA%8E%20Windows%20shell%20%E4%B8%AD%E7%9A%84%20(foo%20%26%3E%2Fdev%2Fnull%20%26).png)
我想从命令行运行一个特定的应用程序(我们称之为foo
),但我不想让它占用终端,将其输出或错误流中的任何垃圾放入终端,也希望它即使我关闭该终端也能继续运行。在 Bash 中,我可以使用 来做到这一点(foo &>/dev/null &)
,但我不知道如何在 Windows shell 中做到这一点。有人能帮帮我吗?
答案1
在 Windows 中执行此操作的方式如下:
start /B foo > NUL 2>&1
该start
命令将启动一个分离的进程,效果类似于&
。如果您正在运行的程序是控制台应用程序,则该/B
选项会阻止start
打开新的终端窗口(对于 GUI 应用程序则不需要)。>
与 Linux 中的含义相同,NUL
是 Windows 中的/dev/null
。2>&1
结尾将会把 stderr 重定向到 stdout,所有输出都会转到NUL
。