【发布时间】:2013-03-31 22:53:37
【问题描述】:
我需要帮助编写批处理代码。
在我的批处理脚本的初始状态中,我需要检查 notepad.exe 是否正在运行
如果它正在运行,则 taskkill /im notepad.exe elsif notepad.exe 没有运行然后转到下一个批处理语句/代码。
【问题讨论】:
标签: batch-file batch-processing taskkill
我需要帮助编写批处理代码。
在我的批处理脚本的初始状态中,我需要检查 notepad.exe 是否正在运行
如果它正在运行,则 taskkill /im notepad.exe elsif notepad.exe 没有运行然后转到下一个批处理语句/代码。
【问题讨论】:
标签: batch-file batch-processing taskkill
在所有情况下,您都可以简单地执行taskkill /im notepad.exe。如果它没有运行,那么taskill 将没有什么可杀的,只会返回。
这种情况下taskkill会报错并设置错误级别。您可以通过重定向标准错误来禁止报告错误:
taskkill /im notepad.exe 2> nul
至于错误级别,您可以忽略它,它将被您执行的下一个命令清除。或者如果需要,您可以clear it yourself。
在我看来,这种方法比试图预测taskkill 是否会成功要好。您将无法预测所有可能的故障模式,并且由于 taskkill 本身会执行您所询问的检查,我认为您最好将该检查留给 taskkill。
【讨论】:
试试taskkill /fi "IMAGENAME eq notepad.exe"
找不到notepad.exe只会抛出信息而不是错误。
【讨论】: