在 Windows 中运行后台进程命令行的工具?

在 Windows 中运行后台进程命令行的工具?

在 Linux 中我们只需要添加一个&就可以了。

对于 Windows 来说呢?

答案1

start /min cmd /c mycommand

如果你想在同一个 shell 中运行其他作业,你必须使用powershell 后台作业

如果要隐藏命令窗口,请使用以下代码保存 vbscript 文件(根据需要替换命令):

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "C:\mycommand_path\mycommand and args" & Chr(34), 0
Set WshShell = Nothing

创建此文件的快捷方式,然后双击它直接从 shell 运行它。听起来你真正想要的是作业控制。安装 unix 子系统以获取 bash 或 ksh 提示符并从那里执行它(如果你想要作业控制),但如果将其作为后台作业运行会导致问题,我并不感到惊讶。你可能希望将其作为后台进程运行。

答案2

这在 *nix 世界中称为作业控制。作业控制是 POSIX shell 的必需功能。

对于 Windows,我发现这个帖子关于一些等价物......

答案3

没有等效方法。您可以安装 cygwin 并执行相同的操作。或者您可以创建一个运行应用程序的服务:srvany 或其他工具将为您执行此操作。请记住,并非所有 Windows 应用程序都能以这些方式正常运行。

答案4

没有人提到start /b

C:\Users\dandv>help start
Starts a separate window to run a specified program or command.

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
      [command/program] [parameters]

    "title"     Title to display in window title bar.
    path        Starting directory.
    B           Start application without creating a new window. The
                application has ^C handling ignored. Unless the application
                enables ^C processing, ^Break is the only way to interrupt
                the application.

相关内容