Python 批量打开 Windows CMD 窗口的实用方法
背景与需求
在测试网络链路时,经常需要同时打开多个 CMD 窗口,持续执行 tcping 命令以观察延迟和丢包情况。手动打开几十个窗口既耗时又容易出错,因此使用 Python 编写脚本实现自动化批量打开 CMD 窗口,可以显著提高工作效率。
基础用法示例
首先,将 tcping.exe 放置到 C:WindowsSystem32 目录下,确保在 CMD 中可以直接调用。以下是两种简单的调用方式:
import os
import subprocess
# 使用 os.system,结果直接显示在当前控制台
os.system('tcping 192.168.88.2')
# 使用 subprocess.Popen,通过 wait() 等待命令执行完成
sub = subprocess.Popen('tcping 192.168.88.2', shell=True)
sub.wait()推荐使用 subprocess 模块
相比 os.system,subprocess 提供了更强大的进程控制能力,尤其适合同时启动多个独立进程。以下两种方式均可在新窗口中运行 tcping:
import subprocess
# 直接调用 tcping.exe,在新窗口打开
sub = subprocess.Popen('tcping -t 192.168.88.2', creationflags=subprocess.CREATE_NEW_CONSOLE)
# 通过 cmd.exe 调用 tcping.exe,同样在新窗口打开
sub = subprocess.Popen('cmd.exe /C tcping -t 192.168.88.2', creationflags=subprocess.CREATE_NEW_CONSOLE)两种方法都能实现新窗口运行,但终止进程时需要注意:第一种方法直接结束 tcping.exe 即可;第二种方法虽然通过 cmd.exe 调用,但仅结束 cmd.exe 并不能关闭窗口,需要同时结束 tcping.exe 进程。
批量打开多个 CMD 窗口
使用简单的 for 循环即可批量启动多个窗口:
import subprocess
for i in range(30):
sub = subprocess.Popen('tcping -t 192.168.88.2', creationflags=subprocess.CREATE_NEW_CONSOLE)由于 tcping -t 会持续运行,直到手动关闭窗口或按下 Ctrl+C,因此需要编写额外的脚本批量终止这些进程。
批量终止进程
终止进程有两种方式:按进程号或按进程名。推荐使用进程名,因为在实际运行中进程号可能会变化,导致无法准确终止。
import os
os.system('taskkill /IM tcping.exe /F')上述命令会强制结束所有名为 tcping.exe 的进程。
查看进程号和进程名
如果需要查看当前运行的进程信息,可以使用 psutil 库:
import psutil
# 查看所有进程号
print(psutil.pids())
# 查看所有进程名
pid_name = [psutil.Process(i).name() for i in psutil.pids()]
print(pid_name)taskkill 命令参考
taskkill 的常用语法如下:
taskkill [/S system [/U username [/P [password]]]]
{[/FI filter] [/PID processid] | /IM imagename} [/T] [/F]常用参数说明:
- /IM imagename:指定要终止的进程映像名称,如
tcping.exe。 - /PID processid:指定要终止的进程号。
- /F:强制终止进程。
- /T:终止指定进程及其子进程。
总结
通过 Python 的 subprocess 模块,可以轻松实现批量打开 CMD 窗口并运行持续命令,配合 taskkill 命令批量终止进程,大大简化了网络测试中的重复操作。希望本文的方法能对您有所帮助。
原文链接:本站整理
本文来自互联网用户投稿,该文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 service@2cto.cc 进行投诉反馈,一经查实,立即处理!
您可能感兴趣的文章:
下一篇:Python执行多行cmd命令:单&与双&&的区别详解