簡體   English   中英

如何使用 python 2.7 關閉 cmd 窗口

[英]How to close a cmd window using python 2.7

標題幾乎說明了這一點,盡管它不需要特定於 cmd,只需關閉一般的應用程序即可。 我見過

os.system(taskkill blah blah)

這實際上並沒有關閉窗口,而只是在窗口內結束 cmd,我想實際關閉窗口本身。

編輯:有人可以給我一行特定的代碼來關閉 cmd 窗口。 鼠標懸停時 cmd 窗口的名稱是

C:\Windows\system32\cmd.exe

像這樣的東西?

import sys
sys.exit()

或者更容易...

raise SystemExit

如果這不是你要找的,請告訴我

您也可以使用 .pyw 保存文件,而根本不會打開 cmd

對於那些因組織中的繁文縟節而堅持使用 Python 2.7 並且無法下載 pywin32 的人。 如果您使用的是 Windows XP 及更高版本,則可以使用 taskkill 通過窗口標題名稱來終止進程,如下所示,對於以標題為MyTitle 的提升模式啟動的 dos 命令提示符

os.system('taskkill /fi "WindowTitle eq Administrator: MyTitle"')

我用它來終止和關閉 cmd 窗口,希望它幫助 os.system("taskkill /f /im cmd.exe")

這是一種使用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

exit() 命令可以工作,但是在 2.7 中它仍然會詢問您是否確定要退出。 它表明該程序仍在運行。 等等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM