我想从cmd
Windows 7 中的命令行启动一个命令并让它完全在后台运行。
基本上,我正在寻找 *nix 提供的功能&
。
到目前为止,我发现start
哪个命令会在新cmd
窗口中打开,并且我发现start /B
哪个命令不会打开新窗口,而是返回到命令行,但会保持进程附加到cmd.exe
启动它的进程(因此,如果关闭cmd.exe
它会终止该进程)。
这可能吗?在 *nix 中这很简单,我很难相信这不可能实现,但谁知道呢。
答案1
我知道的唯一简单方法cmd
是使用psexec
来自 Sysinternals 流程工具。
psexec -d your_command
可以解决问题。(该工具有很多有用的选项,还可以在远程机器上启动进程。非常有用。)
我记得曾经在困境中不得不求助于at
和/或,但是......不要那样做;)schtasks
如果您根本不想要新窗口,但可以忍受一个立即消失的窗口(您会看到它弹出然后离开),则可以使用 VBScript 包装器。(网上有很多这种包装器的变体。)
启动器
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "your_cmd_file_with_full_path.cmd", 0
Set WshShell = Nothing
然后:
psexec -d cscript launcher.vbs
答案2
打开一个 powershell 窗口(只需在 windows 开始菜单的命令区域中输入 powershell),start-job -command“无论您的命令是什么”