9

我需要帮助编写批处理代码。

在我的批处理脚本的初始状态中,我需要检查它是否notepad.exe正在运行,如果它正在运行,那么
taskkill /im notepad.exeelsifnotepad.exe没有运行,然后转到下一个批处理语句/代码。

4

2 回答 2

12

您可以简单地taskkill /im notepad.exe在所有情况下执行。如果它没有运行,那么taskill将没有什么可杀的,只会返回。

在那种情况下,taskkill会报错并设置错误级别。您可以通过重定向标准错误来禁止报告错误:

taskkill /im notepad.exe 2> nul

至于错误级别,您可以忽略它,它将被您执行的下一个命令清除。或者,如果需要,您可以自行清除

在我看来,这种方法比试图预测是否taskkill会成功要好。您将无法预测所有可能的故障模式,并且由于taskkill它本身执行您所询问的检查,我认为您不妨将该检查留给taskkill.

于 2013-04-09T13:23:39.710 回答
7

尝试taskkill /fi "IMAGENAME eq notepad.exe" 找不到 notepad.exe 只会抛出信息而不是错误。

于 2013-04-09T13:38:58.557 回答