在Windows环境下,终端(尤其是PowerShell)是高效操作系统的核心工具。当需要批量执行命令、远程协助控制,或是自动化管理终端进程时,手动操作不仅繁琐还容易出错。本文将介绍一套Windows终端高阶控制方案,涵盖进程查询、终端启停、命令自动输入等核心功能,通过Python实现全流程自动化,兼顾实用性与可操作性。
一、核心依赖库说明
实现终端控制的核心是两个Python库,先提前安装好,后续所有功能都基于这两个库展开:
-
psutil:跨平台的系统监控库,主要用来查找、管理终端进程(比如找到所有运行中的PowerShell,终止指定进程);
-
pyautogui:自动化键鼠操作库,核心作用是向终端窗口发送按键、激活窗口,实现命令的自动输入与执行。
安装命令(打开任意终端执行):
pip install psutil pyautogui
二、基础功能:PowerShell进程管理
终端控制的前提是掌握进程的状态——哪些PowerShell在运行、它们的进程ID(PID)是什么。这一步通过psutil实现,是后续启停终端、操作终端的基础。
2.1 查找所有运行中的PowerShell进程
编写函数遍历系统进程,筛选出PowerShell相关进程,并获取PID、命令行等关键信息,方便后续管理:
import psutil
def get_powershell_processes():
"""获取所有运行中的PowerShell进程信息"""
powershell_processes = []
# 遍历系统中所有正在运行的进程
for proc in psutil.process_iter(['pid', 'name', 'cmdline']):
try:
# 筛选出PowerShell进程(进程名包含powershell)
if 'powershell' in proc.info['name'].lower():
powershell_processes.append({
'pid': proc.info['pid'], # 进程ID,用于后续终止进程
'name': proc.info['name'], # 进程名
'cmdline': ' '.join(proc.info['cmdline']) if proc.info['cmdline'] else '' # 启动命令
})
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
# 忽略无权限或已结束的进程
continue
return powershell_processes
# 测试:打印所有PowerShell进程
if __name__ == "__main__":
processes = get_powershell_processes()
if processes:
print("当前运行的PowerShel

最低0.47元/天 解锁文章
1823

被折叠的 条评论
为什么被折叠?



