先上成品图
需求描述
我们电脑上都安装各种过监控软件,比如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%/1024
set totalMem=%tmp:~0,-3%.%tmp:~-3%G
echo 总内存容量:%totalMem%
echo -----------------------------------------
rem 设置2秒的延迟
ping 127.0.0.1 -n 2 > null
rem 采集可用内存容量
for /f "skip=1" %%i in (‘wmic os get FreePhysicalMemory‘) do (
if %%i geq 0 set freeMem=%%i
)
set /a tmp=%freeMem%/1024
set freeMem=%tmp:~0,-3%.%tmp:~-3%G
echo 空闲内存容量:%freeMem%
- 采集磁盘信息
rem 采集磁盘信息
echo 磁盘信息(可用/总量)
wmic LOGICALDISK get DeviceID,FreeSpace,Size > tmp.txt
for /f "skip=1 tokens=1,2,3*" %%i in (‘type tmp.txt‘) do (
set totalDisk=%%k
set freeDisk=%%j
set /a tmp1=!freeDisk:~0,-5!/1074
set /a tmp2=!totalDisk:~0,-5!/1074
set diskStr=%%i!tmp1:~0,-1!.!tmp1:~-1!G/!tmp2:~0,-1!.!tmp2:~-1!G
echo !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 %%i
rem )
wmic STARTUP GET Command
这套脚本可以放在成型的大型程序里面,作为一个基础的功能模块。
源代码打包下载
提取码:se7z
原文地址:https://www.cnblogs.com/qjx-2016/p/10291928.html
时间: 2024-11-13 10:22:14