我使用批处理文件来停止Windows服务。我正在使用sc命令,但考虑到下面的问题,我对其他想法持开放态度。问题是,批处理文件在服务停止时继续进行( stop参数到sc似乎只请求停止-它不会等待停止)。
如何修改批处理文件直到停止完成才能继续进行?
发布于 2010-05-20 15:00:24
您可以使用NET stop,这是同步的,即它将等待直到服务停止。
见- 净停止
发布于 2016-10-25 20:58:16
sc stop webdriveservice
:loop
sc query webdriveservice | find "STOPPED"
if errorlevel 1 (
timeout 1
goto loop
)另一个具有重复计数限制的版本:
sc stop webdriveservice
set count=1
set limit=10
:loop
sc query webdriveservice | find "STOPPED"
if errorlevel 1 (
timeout 1
set /a count += 1
if %count% lss %limit% goto loop
)发布于 2013-08-07 18:36:49
如前所述,NET将向服务发送停止命令,但是,如果服务花费的时间超过一定时间(我观察到的时间为20秒左右),NET STOP将不会等待服务实际停止才返回。
要实际暂停批处理文件直到服务停止,您需要使用以下线程中概述的方法:
https://stackoverflow.com/questions/2874911
复制相似问题