如果Notepad.exe正在运行,那么taskkill如果没有运行则转到下一个语句

时间:2013-04-09 13:22:18

标签: batch-file batch-processing taskkill

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

在我的批处理脚本的初始状态中,我需要检查notepad.exe是否正在运行 如果它正在运行,则taskkill /im notepad.exe elsif notepad.exe未运行,请转到下一批声明/代码。

2 个答案:

答案 0 :(得分:12)

您可以在所有情况下执行taskkill /im notepad.exe。如果它没有运行,那么taskill将无法杀死并将返回。

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

taskkill /im notepad.exe 2> nul

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

在我看来,这种方法比试图预测taskkill是否会成功更好。您将无法预测所有可能的失败模式,并且由于taskkill本身会执行您要求的检查,我认为您也可以将该检查留给taskkill

答案 1 :(得分:6)

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