批处理获取系统信息
批处理获取系统信息
狂犬主子批处理获取系统信息
批处理获取系统信息,我们通常使用 WMIC(WMI 命令行,Windows Management Instrumentation,Windows管理规范)来实现。
WMIC 支持 Windows XP 及更高版本,因此在正常桌面系统环境基本都可以使用。但部分 WMIC 的命令参数在 Windows XP 中不支持,需要手动通过 PATH 参数指定。因此建议在 Windows XP 环境下编写脚本以获得最佳兼容性。
另外需要注意的是,在 WinPE 环境下可能没有 WMIC,或者存在组件不完整、无法使用的问题。因此,对于这种情况,除了补全 WinPE 的 WMIC 组件外,还可以使用其他方法,如 Nwinfo、AIDA64 等获取系统信息。
本文介绍使用 WMIC 获取系统信息的方法,经过测试能够在 Windows XP 环境下正确读取系统信息,如果需要扩展其它功能,请自行研究 WMIC 文档。
获取原理
通过使用 CMD 自带的 FOR /F 命令,调用 WMIC 命令获取系统信息,并将其从 WMIC 输出结构中解析出来,保存到变量。
需要注意的是,由于我们要在代码块中设置变量,所以需要使用 setlocal enabledelayedexpansion
命令。
另外获取的容量单位为字节(Byte),且大小无法通过 CMD 直接转换到GB(超过int32),需要借助其它脚本语言,如 PowerShell、Python 等。
获取网络信息
通过 curl 命令连接 Cloudflare 中国网络节点获取网络信息
1 | for /f "tokens=1,2 delims==" %%a in ('curl.exe -4 "http://cf-ns.com/cdn-cgi/trace"') do ( |
可用参数如下
1 | ip=66.666.66.66 // 连接IP |
获取系统UUID
1 | for /f "tokens=1,2 delims==" %%a in ('WMIC CSPRODUCT GET UUID /value') do ( |
获取系统版本
1 | for /f "tokens=2 delims=[]" %%a in ('ver') do ( |
获取系统描述、系统架构、总内存
1 | for /f "tokens=1,2 delims==" %%a in ('WMIC OS GET /value') do ( |
获取电脑厂家、型号
1 | for /f "tokens=1,2 delims==" %%a in ('WMIC BASEBOARD GET /value') do ( |
获取CPU型号、CPUID
1 | for /f "tokens=1,2 delims==" %%a in ('WMIC CPU GET /value') do ( |
获取GPU驱动版本、分辨率、名称、设备ID
1 | for /f "tokens=1,2 delims==" %%a in ('WMIC PATH Win32_VideoController GET /value') do ( |
获取网卡名称、MAC地址
1 | for /f "tokens=1,2 delims==" %%a in ('WMIC NIC WHERE "PhysicalAdapter=TRUE" GET /value') do ( |
获取磁盘名称、大小
1 | for /f "tokens=1,2 delims==" %%a in ('WMIC DISKDRIVE GET /value') do ( |
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果