脚本其实很简单-windows配置核查程序(1)
先上成品图
需求描述
我们电脑上都安装各种过监控软件,比如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
脚本其实很简单-windows配置核查程序(1)的更多相关文章
- 脚本其实很简单-windows配置核查程序(2)
bat脚本是什么? 首先讲讲什么是命令行,在windows操作系统中,点击左下角的win图标,直接输入cmd搜索,左键点击进入命令行模式(或按键盘上的win键+r直接调出来命令行窗口). 在windo ...
- Linux~其实shell脚本也很简单
用了两个的centos之后,也想看看它的脚本,我们知道shell这个东西就像windows里的批处理,它可以将一些语句进行组合,然后统一去执行,感觉挺方便的. shell文件的组成 shell语言环境 ...
- vb6-很简单的配置密码验证提示
'很简单的配置密码验证提示 Dim add As String add = Trim(InputBox("请输入配置密码", "报表配置")) If add = ...
- 谁说C语言很简单?
前两天,Neo写了一篇<语言的歧义>其使用C语言讨论了一些语言的歧义.大家应该也顺便了解了一下C语言中的很多不可思异的东西,可能也是你从未注意到的东西. 是的,C语言并不简单,让我们来看看 ...
- 在linux安装redis单机和集群后,如何在windows上使用redis客户端或者java代码访问错误的原因很简单,就是没有连接上redis服务,由于redis采用的安全策略,默认会只准许本地访问。需要通过简单配置,完成允许外网访问。
这几天在学习在linux上搭建服务器的工作,可谓历经艰辛.可喜最后收获也不少. 这次是在linux上搭建redis服务器后从windows上缺无法访问,连接不上. 仔细回忆以前搭建nginx和ftp的 ...
- Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序
由于最近比较忙,一直到假期才有空,因此将自己学到的知识进行分享.如果有不对的地方,请指出,谢谢!目前深度学习越来越火,学习.使用tensorflow的相关工作者也越来越多.最近在研究tensorflo ...
- 我的第一个WCF程序,很简单适合我等菜鸟
1.首先我罗列一下网站搜索并经过自己理解的WCF的含义: 1)WCF:(WIndows Communication Foundation)是由微软是由微软发展的一组数据通信的应用开发接口,可以翻译为W ...
- Windows窗体应用程序(非Console)使用libuv实现简单的异步WEB服务器
libuv是一个很强大的异步处理框架(严格意义上不能叫框架,其实就是一组异步函数库,当然框架这东西有各种各样的定义和理解_^...),最初的的目的是用于NODEJS的异步处理,不过因为它是一个独立的项 ...
- 快速解决:windows安装程序无法将windows配置为在此计算机的硬件上运行
用手工运行msoobe.ext启用配置的方法, 快速解决:windows安装程序无法将windows配置为在此计算机的硬件上运行 我自己安装碰到的是蓝色这个错误,下面这个也有网友说用安装驱动等方法 ...
随机推荐
- dp - HNU 13404 The Imp
The Imp Problem's Link: http://acm.hnu.cn/online/?action=problem&type=show&id=13404&cour ...
- ThinkPHP 汉字转成多种形式拼音
模型: <?php namespace Admin\Model; use Think\Model; /** * 汉字转拼音 * @author huangguojin */ class ZHMo ...
- 【BZOJ】1649: [Usaco2006 Dec]Cow Roller Coaster(dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=1649 又是题解... 设f[i][j]表示费用i长度j得到的最大乐趣 f[i][end[a]]=ma ...
- 微软ASP.NET网站部署指南(8):部署Code-Only更新
1. 综述 初始化部署以后,你须要继续维护和更新你的网站.本章节将向你展示一个不包含数据库改变的部署升级流程.(下一章节将展示数据库改变的部署升级流程.) 提醒:假设依据本章节所做的操作出现错误信息 ...
- Linux下面变量的疑问处
SHLVL是Shell累加器的变量,具体请看下面 http://www.cnblogs.com/ziyunfei/p/4803832.html OLDPWD = old pwd(就是是之前一次的pwd ...
- 【转】C++ Incorrect Memory Usage and Corrupted Memory(模拟C++程序内存使用崩溃问题)
http://www.bogotobogo.com/cplusplus/CppCrashDebuggingMemoryLeak.php Incorrect Memory Usage and Corru ...
- mysql触发器小实验
今天实验了一下mysql的触发器 mysql> use test; Database changed mysql> desc time; +-------+---------------- ...
- shell脚本学习总结08--比较与测试
程序中流程控制是由比较语句和测试语句处理的 算数比较 [ $var -gt 20 ] [ $var -gt 20 -a $var -lt 50 ] #使用逻辑与 [ $var -ne ...
- JSON和对象之前的相互转换
package com.jxjson.com; import android.util.Log; import org.json.JSONArray; import org.json.JSONExce ...
- kettle中denormalizer(列转行)的使用
转载: 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sucre.blog.51cto.com/1084905/1434015 ...