相当于 Windows shell 中的 (foo &>/dev/null &)

相当于 Windows shell 中的 (foo &>/dev/null &)

我想从命令行运行一个特定的应用程序(我们称之为foo),但我不想让它占用终端,将其输出或错误流中的任何垃圾放入终端,也希望它即使我关闭该终端也能继续运行。在 Bash 中,我可以使用 来做到这一点(foo &>/dev/null &),但我不知道如何在 Windows shell 中做到这一点。有人能帮帮我吗?

答案1

在 Windows 中执行此操作的方式如下:

start /B foo > NUL 2>&1

start命令将启动一个分离的进程,效果类似于&。如果您正在运行的程序是控制台应用程序,则该/B选项会阻止start打开新的终端窗口(对于 GUI 应用程序则不需要)。>与 Linux 中的含义相同,NUL是 Windows 中的/dev/null2>&1结尾将会把 stderr 重定向到 stdout,所有输出都会转到NUL

答案2

没有直接的等价物。

正如所描述的这里start,可以使用该命令并使用选项以不阻塞调用者的方式调用程序/b。不过,不知道在这种情况下输出重定向的情况。您可能需要将其包装在批处理文件中。

至于> /dev/null,很简单:>NUL.NUL是 DOS 设备名称。但是,速记运算符不可用。您必须使用 手动操作2>&1这里还有更多相关信息。

相关内容