如何从.BAT文件停止进程?

问题描述:

所以我有从一个bat文件开始的过程。如何阻止它从另一个?如何从.BAT文件停止进程?

+1

'taskkill -im exename.exe'将强制终止进程。这是你想要的吗? – IVlad 2010-05-22 16:31:38

+2

[任何方式来编写Windows .bat文件来终止进程?]可能的重复(http://*.com/questions/33822/any-way-to-write-a-windows-bat-file-to-杀死进程) – 2016-06-23 16:06:28

要终止你知道名的过程中,尽量:

taskkill /IM notepad.exe 

这将要求它关闭,但它可能会拒绝,提议“保存更改”,等等。如果你要强行杀死它,尝试:

taskkill /F /IM notepad.exe 
+0

工程就像一个魅力。事实上,没有/ F的选项要求程序很好地关闭。然后程序仍然可以决定不关闭。当关闭按钮被按下时,我有一个程序最小化为托盘图标,这正是发生的情况。/F选项强制退出它。 – 2015-07-29 08:37:35

+0

'taskkill/F/IM notepad.exe'在大多数情况下对我来说更好。 'taskkill/F/IM notepad.exe'从我没有保存对话框的任务中引发错误。它们没有正确关闭,并且可能发生不同的事情(即使关闭对话框后程序仍可能保持打开状态)。我不想在后台生成一个错误,所以我推荐'/ F/IM',除非它是Word.exe或其他东西。 – 2015-12-15 05:14:42

当您从一个批处理文件启动一个进程,它开始与朝启动它(因为这将完成在此期间运行,像批处理文件没有暗示单独的进程父进程ID不会帮助你)。

如果您知道进程名称,并且它在所有正在运行的进程中都是唯一的,那么可以使用taskkill,如@IVlad在评论中的建议。

如果它不是唯一的,你可能想看看工作。这些终止的所有衍生子进程终止。

由于TASKKILL可能不可用在Windows的一些家庭/基本版本在这里一些替代方案:

TSKILL processName 

TSKILL PID 

有记住,processName不应该有.exe后缀是有限的到18个字符。

另一种选择是WMIC

wmic Path win32_process Where "Caption Like 'MyProcess.exe'" Call Terminate 

WMIC提供了更大的灵活性比TASKKILL。随着wmic Path win32_process get你可以看到你可以过滤可用的Fileds。

为什么不使用PowerShell?

Stop-Process -Name notepad 

如果你是在一个批处理文件:

powershell -Command "Stop-Process -Name notepad" 
powershell -Command "Stop-Process -Id 4232" 

的taskkill/F/IM的notepad.exe这是杀死从任务管理器任务的最佳方式。