Windows 如何不在批处理脚本中等待进程完成?

Windows 如何不在批处理脚本中等待进程完成?,windows,command-line,batch-file,Windows,Command Line,Batch File,我有一个批处理脚本,它调用一个进程,当前它等待进程完成,然后再转到下一行。有没有一种方法(或开关)让它不用等待,只需生成流程并继续?我正在使用Windows 2008。使用 START c:\wherever\whatever.exe 这可能就足够了 call "cmd /c start notepad.exe" 为什么不直接用空格.exe启动一些命令 请注意,如果您的命令有空格,则必须在其周围加引号,但如果start的第一个参数有引号,则该命令是第二个参数,因此这里有两组引号 该命令有一些

我有一个批处理脚本,它调用一个进程,当前它等待进程完成,然后再转到下一行。有没有一种方法(或开关)让它不用等待,只需生成流程并继续?我正在使用Windows 2008。

使用

START c:\wherever\whatever.exe

这可能就足够了

call "cmd /c start notepad.exe"

为什么不直接用空格.exe启动一些命令

请注意,如果您的命令有空格,则必须在其周围加引号,但如果
start
的第一个参数有引号,则该命令是第二个参数,因此这里有两组引号

该命令有一些很好的特性,如超时、等待等

此命令主要用于调度,但您可以使用它启动另一个命令,而无需等待

WMIC
这将返回已启动流程的PID。

回答您关于“为什么不”的问题?好吧,因为dos会想方设法地认为把命令加引号会神奇地使它成为第二个参数,这完全是不直观的。事实上,即使给出了您的解释,也不清楚第二个示例为什么有效,但它确实有效,我感谢您发布这篇文章?如果你在引号中加上一些东西,它会假定这是窗口的“标题”,而不是神奇地成为第二个参数。虽然,在我阅读该文档的前几篇文章时,并不清楚如何实际执行示例所做的操作。这是实际可行的解决方案!很不错的!这就是我要找的!这适用于visual studio生成后事件以启动excel。通过
启动“我的标题”C:\where\where.exe提供标题(也可以将标题指定为空白字符串
)。最好指定一个标题,因为“标题是可选的,[…]根据所选的其他选项,如果省略它,则可能会出现问题”()。如果以后要停止任务,请使用
tskill whatever
,其中“whatever”是程序名。通常是没有“.exe”的文件名。如果没有,请在返回的
任务列表
列表中搜索该名称。该名称可能重复
scriptrunner -appvscript notepad
SCHTASKS /create /tn BatRunner /tr "%cd%\first.bat" /sc ONCE /sd 01/01/1910 /st 00:00
SCHTASKS /Run /TN BatRunner
SCHTASKS /Delete /TN BatRunner /F
WMIC process call create "notepad"