先上成品图
需求描述
我们电脑上都安装各种过监控软件,比如360、鲁大师等等。。。其中有一个功能就是性能监控,在安全行业里面通常叫做“配置核查”,目的就是将主机的各种性能指标展示,指标包括CPU状态、内存状态、磁盘状态等等。。。本次的程序目的就是通过编写bat脚本,实现我们PC电脑上自己实现的“性能监控”系统。本次配置核查的内容包括:CPU、内存、磁盘、网络端口、自启程序。做过一次配置之后,就可以轻松的把自己需要的主机信息拿到手了。
环境说明
开发环境:任意文本编辑器
运行环境:windows全平台
开发思路
新建文件,命名为inspecion.bat(最终运行脚本)和test.bat(测试脚本)
在test.bat中编写每一个要实现的功能并测试
将test.bat中测试成功后的功能组合在一起,写入到inspection.bat中
运行,测试最终运行结果
开发步骤
对思路中的第二点进行讲解
采集cpu信息
rem 采集cpu信息,若多核,则显示多条结果for /f "skip=1" %%i in ('wmic CPU GET LoadPercentage') do (if %%i geq 0 set cpuStr=%%i%%)echo CPU使用率:%cpuStr%
采集内存信息
rem 采集内存总容量for /f "skip=1" %%i in ('wmic os get TotalVisibleMemorySize') do (if %%i geq 0 set totalMem=%%i)set /a tmp=%totalMem%/1024set totalMem=%tmp:~0,-3%.%tmp:~-3%Gecho 总内存容量:%totalMem%echo -----------------------------------------rem 设置2秒的延迟ping 127.0.0.1 -n 2 > nullrem 采集可用内存容量for /f "skip=1" %%i in ('wmic os get FreePhysicalMemory') do (if %%i geq 0 set freeMem=%%i)set /a tmp=%freeMem%/1024set freeMem=%tmp:~0,-3%.%tmp:~-3%Gecho 空闲内存容量:%freeMem%
采集磁盘信息
rem 采集磁盘信息echo 磁盘信息(可用/总量)wmic LOGICALDISK get DeviceID,FreeSpace,Size > tmp.txtfor /f "skip=1 tokens=1,2,3*" %%i in ('type tmp.txt') do (set totalDisk=%%kset freeDisk=%%jset /a tmp1=!freeDisk:~0,-5!/1074set /a tmp2=!totalDisk:~0,-5!/1074set diskStr=%%i!tmp1:~0,-1!.!tmp1:~-1!G/!tmp2:~0,-1!.!tmp2:~-1!Gecho !diskStr!)del tmp.txt
采集TCP端口信息
echo TCP port:FOR /F "tokens=3,5* delims=: " %%i IN ('netstat -anp tcp') do (if %%k == LISTENING set tcpStr=!tcpStr!%%i )echo %tcpStr%
采集UDP端口信息
echo UDP port:FOR /F "tokens=1,2,3* delims=: " %%i IN ('netstat -anp udp') do (if %%i == UDP set udpStr=!udpStr!%%k )echo %udpStr%
显示自启程序的执行路径
echo 自启程序路径:rem for /f "skip=1" %%i in ('wmic STARTUP GET Command') do (rem echo %%irem )wmic STARTUP GET Command
这套脚本可以放在成型的大型程序里面,作为一个基础的功能模块。
源代码打包下载
下载地址
提取码:se7z