【问题标题】:Kill IF process exist in Windows杀死 IF 进程存在于 Windows
【发布时间】:2012-08-17 17:34:47
【问题描述】:

我只想在进程存在的情况下杀死一个进程,我想这样做是因为我有一个工具,只有在没有错误的情况下才会运行,并且我做了一些测试,当我尝试杀死一个进程时确实出现了错误不存在的进程。这是我用来终止进程的行:

taskkill /f /IM notepad.exe

但我想验证它仅在进程存在时执行。

谢谢!!!

【问题讨论】:

  • @echo off tasklist /nh /fi "imagename eq notepad.exe" | find /i "notepad.exe" >nul && (taskkill /f /im notepad.exe)

标签: windows if-statement process kill


【解决方案1】:

取自this问题,你应该试试这个代码:

taskkill /f /im notepad.exe /fi "memusage gt 40" 2>NUL | findstr SUCCESS >NUL && if errorlevel 1 ( echo Notepad was not killed ) else ( echo Notepad was killed )

如果这没有帮助,您可以查看thisthis 问题。

希望对你有帮助!

【讨论】:

  • 我也试过了,但由于某种原因它在我尝试后返回:“FIND: Invalid Switch”:tasklist /FI "IMAGENAME eq notepad.exe" 2>NUL | find /I /N "nodepad.exe">NUL if "%ERRORLEVEL%"=="0" taskkill /f /im notepad.exe 你能试着在你的电脑上做这个吗?在没有记事本打开的情况下运行它,在记事本打开的情况下运行它没有返回任何内容,它是记事本打开的,如果它是打开的,它会返回成功。我认为问题出在我的 SO 因为它是 WIN7 64bits 有什么建议吗?谢谢
  • 好的,试试我更新的代码。如果成功,它将打印“记事本被杀死”,否则将打印“记事本未被杀死”。我已经用我的电脑 Win7 64 位测试了这段代码,它似乎在管理员和非管理员命令提示符下都可以工作。希望它有效!
  • 真的很有帮助,谢谢。如果您只希望输出没有错误并且没有不同的消息,那么缩写版本是:taskkill /f /im notepad.exe /fi "memusage gt 40"
猜你喜欢
  • 2012-06-13
  • 1970-01-01
  • 2018-08-05
  • 1970-01-01
  • 2012-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
相关资源
最近更新 更多