2012-08-17 63 views
2

如果進程存在,我想殺死一個進程,我想這樣做是因爲我有一個只有在沒有錯誤時才運行的工具,並且我做了一些測試,並且確實存在錯誤當我試圖殺死一個不存在的進程時。這是我用來殺死一個進程的線:殺死Windows中存在的IF進程

taskkill /f /IM notepad.exe 

但是我想驗證它只在進程EXISTS時執行。

謝謝!!!

+0

@echo off tasklist/nh/fi「imagename eq notepad.exe」|找到/ i「notepad.exe」> nul &&(taskkill/f/im notepad.exe) – 2012-08-17 20:53:24

回答

4

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問題。

我希望它有幫助!

+0

我也試過,但由於某種原因,它返回:「FIND:無效開關」後,我試過:tasklist/FI「IMAGENAME eq notepad .exe「2> NUL | find/I/N「nodepad.exe」> NUL如果「%ERRORLEVEL%」==「0」taskkill/f/im notepad.exe您可以嘗試在您的計算機上執行此操作嗎?運行它沒有記事本打開和記事本打開的東西是它回報我沒有記事本是開放的,它返回成功,如果它是開放的。我認爲問題出在我的SO上,因爲它是WIN7 64位的任何建議?謝謝 – 2012-08-17 19:41:57

+0

好的,試試我更新的代碼。如果成功,它將打印'記事本被殺死',否則會打印'記事本未被殺死'。我用我的電腦Win7 64位測試了這個代碼,它似乎可以在管理員和非管理員命令提示符下工作。希望它有效! – 2012-08-17 20:09:17

+0

真的很有幫助謝謝。如果你只是想輸出沒有錯誤,沒有不同的消息,那麼縮寫版本是:taskkill/f/im notepad.exe/fi「memusage gt 40」 – acarlon 2013-08-12 03:36:39