Ara*_*orn 8

您可以使用 start 命令在命令窗口的后台运行进程。

command1
command2
start command3
command4
Run Code Online (Sandbox Code Playgroud)

command2 等到 command1 完成,但 command4 不等待 command3 完成。

如果您需要独立于登录的用户运行,则需要将该进程作为服务启动,您可以使用anysrv.exe


Spe*_*nce 6

您可能想查看 Windows 服务。您可以下载一些工具来将任何进程作为 Windows 服务托管。这会导致进程在 Windows 启动时在后台加载,因此如果它不需要用户交互,您应该能够像这样托管它。

Windows Server 2003 资源工具包

您要使用的工具称为 srvany.exe。


Eva*_*son 5

在 Windows 中,您可以让用户启动的进程在注销后继续运行(即“nohup”所做的)的唯一方法是通过“计划任务”或作为 Windows 服务启动它。当用户注销时,其登录会话中的所有进程都将被终止。

如果您想尝试“计划任务”方法,您会想知道如何以编程方式创建它们。该Win32_ScheduledJob WMI类可以做到这一点。此处提供了详细的文档:http : //www.microsoft.com/technet/scriptcenter/guide/sas_man_rsxs.mspx? mfr = true 基本上,您正在考虑做(从 Microsoft 无耻地窃取):

Set objService = GetObject("winmgmts:\\.")
Set objNewJob = objService.Get("Win32_ScheduledJob")
errJobCreated = objNewJob.Create("Program-to-execute.exe", "ugly-formatted-time-string-per-Microsoft-docs",True ,1 OR 4 OR 16, , ,JobID)
If Err.Number = 0 Then
 Wscript.Echo "New Job ID: " & JobID
Else
 Wscript.Echo "An error occurred: " & errJobCreated
End If
Run Code Online (Sandbox Code Playgroud)

要授予“joe 用户”创建计划任务的能力,您必须修改 %SystemRoot%\Tasks 文件夹的权限。有关这方面的一些信息,请参见此处:http : //technet.microsoft.com/en-us/library/cc785125(WS.10).aspx


Wes*_*ley 0

这一切都取决于您的最终目的是什么。您可以运行计划任务,并选择仅在用户登录设置为“已禁用”时才运行。您可以从远程计算机使用 psexec。更好的方法可能是将流程作为服务来运行。查看此 Google 搜索此其他 Google 搜索此线程此其他线程,以了解您搜索解决方案的一些可能线索。最终看来Windows 机器上没有与 nohup 完全相同的东西。