3

标题几乎说明了这一点,尽管它不需要特定于 cmd,只是一般地关闭应用程序。我见过

os.system(taskkill blah blah)

这实际上并没有关闭窗口,而只是在窗口内结束 cmd,我想实际关闭窗口本身。

编辑:有人可以给我一个特定的代码行来关闭一个 cmd 窗口。鼠标悬停时 cmd 窗口的名称是

C:\Windows\system32\cmd.exe
4

5 回答 5

5

像这样的东西?

import sys
sys.exit()

或更简单...

raise SystemExit

如果那不是你要找的告诉我

您也可以使用 .pyw 保存文件,并且根本不会打开 cmd

于 2013-05-17T00:45:41.607 回答
4

对于任何因贵组织中的繁文缛节而无法下载 pywin32 的人使用 Python 2.7。如果您使用的是 Windows XP 及更高版本,则可以使用 taskkill 按窗口标题名称终止进程,如下所示,对于在提升模式下以标题MyTitle启动的 dos 命令提示符

os.system('taskkill /fi "WindowTitle eq Administrator: MyTitle"')
于 2013-08-09T13:51:43.047 回答
3

我用它来终止并关闭 cmd 窗口,希望对 os.system("taskkill /f /im cmd.exe") 有所帮助

于 2020-09-16T04:14:46.890 回答
2

这是一种使用Python for Windows 扩展 (pywin32)来查找 PID 和taskill以结束进程的方法(基于此示例)。我这样做是为了让您访问一些额外的运行信息,以防您不想不加选择地杀死任何 cmd.exe:

import os
from win32com.client import GetObject

WMI = GetObject('winmgmts:')
processes = WMI.InstancesOf('Win32_Process')

for p in WMI.ExecQuery('select * from Win32_Process where Name="cmd.exe"'):
    print "Killing PID:", p.Properties_('ProcessId').Value
    os.system("taskkill /pid "+str(p.Properties_('ProcessId').Value))

现在在 for 循环中,您可以查看有关每个正在运行的进程的其他一些信息(或者甚至查找依赖于它的子进程(例如在每个 cmd.exe 中运行程序)。如何读取每个进程属性的示例可能如下所示这个:

from win32com.client import GetObject

WMI = GetObject('winmgmts:')
processes = WMI.InstancesOf('Win32_Process')

for p in WMI.ExecQuery('select * from Win32_Process where Name="cmd.exe"'):
    print "--running cmd.exe---"
    for prop in [prop.Name for prop in p.Properties_]:
        print prop,"=",p.Properties_(prop).Value
于 2013-05-17T23:10:14.113 回答
-1

exit() 命令有效,但是在 2.7 中它仍然会询问您是否确定要退出。它表明该程序仍在运行。ETC

于 2013-10-08T13:27:38.687 回答