只有在程序启动时才能启动程序?所有这些都来自批处理文件。 如果你开始也可以关闭?来自同一个文件。
@echo off
tasklist /fi "patch and program.exe" > nul
if errorlevel 1 start program
我该如何继续?
答案 0 :(得分:0)
以下是如何启动服务:
SC START SERVICENAME
以下是停止服务的方法:
SC STOP SERVICENAME
以下是检查服务是否正在运行的方法:
FOR /f "tokens=2 delims= " %%a IN (
'wmic service get name^,state /format:TABLE ^| findstr /i /r /c:"SERVICENAME"') DO (
IF %%a==Stopped (
SC START SERVICENAME
)
IF %%a==Running (
SC STOP SERVICENAME
)
)
如果服务停止,最后一段代码将启动服务,如果服务正在运行则停止它。
编辑:
如果您想使用任务而不是服务来执行此操作,请输入以下代码:
@echo off
tasklist|findstr something.exe
if %ERRORLEVEL%==0 taskkill /IM something.exe
if %ERRORLEVEL%==1 call something.exe
有几种方法可以实现这一目标。这是其中之一。另一个是这样的:
@echo off
taskkill /im something.exe
if %errorlevel%=128 call something.exe
此代码将首先尝试终止任务。如果它正在运行,它将被%errorlevel% 0
终止,因此 if 语句将被忽略。如果任务未运行,taskkill
命令将以%errorlevel% 128
终止,这意味着未找到此类任务。因此, if 语句将被执行,call something.exe
将启动该程序。