使用Python结束任务时出现问题



我知道在windows cmd中,我可以键入以下文本来结束进程:

taskkill/im chrome.exe /f

但是我怎样才能使用Python呢?

我试过这个:

from subprocess import *
call("taskkill/im chrome.exe /f", shell=True)

但它显示了这一点:

'taskkill' is not recognized as an internal or external command, operable program or batch file.

那么我的代码出了什么问题?我怎样才能让它工作?

试试这个:

import os
os.system("taskkill/im chrome.exe /f")

我无法使用带窗户的机器,但它应该可以工作。

编辑:

也可以试试:

1-该命令需要在taskkill和/IM之间留出空白,因此:

 os.system("taskkill /im chrome.exe /f")

2-Taskkill不在Windows XP中,有一个功能不太强大的工具叫tskill,所以:

os.system("tskill chrome")

正如RvdK链接到的问题中提到的那样:您需要一个到taskkill.exe的完全限定路径,但没有提到的是,您需要记住转义反斜杠,因此

call("c:\windows\system32\taskkill.exe /im chrome.exe /f", shell=True)

应该工作(它在我的Win7机器上工作(。

请注意,您实际上并不需要shell=True位,如子流程文档中所述

在shell为True的Windows上,COMSPEC环境变量指定默认shell。唯一需要在上指定shell=True的时间Windows是将要执行的命令内置到shell(例如dir或copy(。运行批处理不需要shell=True文件或基于控制台的可执行文件。

所以call("c:\windows\system32\taskkill.exe /im chrome.exe /f")更好。

#我的备忘录

from win32com.client import GetObject
import os
WMI = GetObject('winmgmts:')
for p in WMI.ExecQuery('select * from Win32_Process where Name LIKE "%chrome%"'):
    os.system("taskkill /F /PID "+str(p.ProcessId))

最新更新