如果程序未启动则启动程序,如果程序启动则关闭程序

时间:2015-12-04 12:50:24

标签: batch-file

只有在程序启动时才能启动程序?所有这些都来自批处理文件。 如果你开始也可以关闭?来自同一个文件。

@echo off
tasklist /fi "patch and program.exe" > nul
if errorlevel 1 start program

我该如何继续?

1 个答案:

答案 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将启动该程序。