If statement 批处理文件:检查程序、重新启动或不执行任何操作

If statement 批处理文件:检查程序、重新启动或不执行任何操作,if-statement,batch-file,application-restart,tasklist,taskkill,If Statement,Batch File,Application Restart,Tasklist,Taskkill,我有点纠结于此。剧本的构思应该是: 如果程序1正在运行 把它关上然后打开 如果没有运行 无所事事 这将在XP和win7机器上使用 以下是我所拥有的,但我不知道如何合并if语句,甚至不知道我所拥有的是否完全正确: tasklist /fi "imagename eq KDS.exe" taskkill /f /im "KDS.exe" start "" "C:\Path\KDS.exe" 我将首先执行taskkill,并检查其返回值以确定它是否成功。如果有,则重新启动该过程 taskkill

我有点纠结于此。剧本的构思应该是:

如果程序1正在运行 把它关上然后打开 如果没有运行 无所事事

这将在XP和win7机器上使用

以下是我所拥有的,但我不知道如何合并if语句,甚至不知道我所拥有的是否完全正确:

tasklist /fi "imagename eq KDS.exe" taskkill /f /im "KDS.exe"  start "" "C:\Path\KDS.exe"

我将首先执行
taskkill
,并检查其返回值以确定它是否成功。如果有,则重新启动该过程

taskkill /f /im "kds.exe" && (
    start "" "C:\Path\KDS.exe"
)

灵感来源:

我会先执行
taskkill
,然后检查它的返回值以确定它是否成功。如果有,则重新启动该过程

taskkill /f /im "kds.exe" && (
    start "" "C:\Path\KDS.exe"
)

灵感来源:

我在一台进程没有运行的计算机上尝试了这一点,但它启动了它。我们的想法是检查它是否正在运行,是否需要重新启动它。如果没有运行,请不要尝试启动该程序。Hrmph。没错。我添加了
/f
标志,并使用了
/im
而不是
/fi
,现在它返回了我期望的错误代码。我在进程未运行的计算机上尝试了这一点,它启动了它。我们的想法是检查它是否正在运行,是否需要重新启动它。如果没有运行,请不要尝试启动该程序。Hrmph。没错。我添加了
/f
标志,并使用了
/im
而不是
/fi
,现在它返回了我期望的错误代码。