标题: [系统相关] 批处理怎样查询当前时间点操作系统信息? [打印本页]
作者: yukang2634 时间: 2011-5-31 11:17 标题: 批处理怎样查询当前时间点操作系统信息?
我现在想利用批处理文件查询当前时间点操作系统的三个信息:CPU负载、内存使用量及各磁盘分区的剩余空间并能导出结果到txt文件。但是个人能力有限,不会编写这样的批处理文件,所以想请各位精通批处理的网友帮帮忙给编写一个,先谢过了。
我在网上有找到一个查询当前时间点操作系统CPU负载&内存使用量的批处理,也找到了一个查询当前时间点操作系统磁盘分区剩余空间的批处理。可不会将这两个合并为一个批处理文件,如能帮忙合并成一个也行,也先谢过了。两个批处理文件我打包上传了。
第一个代码:- @echo off
- color 2
- setlocal EnableDelayedExpansion
-
- set /a memory=0
- for /f "tokens=1,2,3,4" %%a in ('tasklist /FO LIST ^| find "内存使用"') do (
- REM echo %%a %%b %%c
- for /f "tokens=1,2,3,4 delims=," %%i in ('echo %%c') do (
- set /a data=%%i
- if not "%%j"=="" (
- set data1=%%j
-
- set bit1=!data1:~0,1!
- if !bit1!==0 set data1=!data1:~1!
- REM echo data1=!data1!
-
- set bit1=!data1:~0,1!
- if !bit1!==0 set data1=!data1:~1!
- REM echo data1=!data1!
-
- set /a data=data*1000+!data1!
- )
- if not "%%k"=="" (
- set data1=%%k
-
- set bit1=!data1:~0,1!
- if !bit1!==0 set data1=!data1:~1!
- REM echo data1=!data1!
-
- set bit1=!data1:~0,1!
- if !bit1!==0 set data1=!data1:~1!
- REM echo data1=!data1!
-
- set /a data=data*1000+!data1!
- )
- )
- set /a memory=memory+data
- )
- set /a memoryMB=!memory!/1024
-
- echo 内存使用 !memoryMB! MB
- for /f "skip=1" %%i in ('wmic CPU get loadpercentage') do echo CPU使用 %%i%
- pause>nul
- %0
复制代码
第二个代码:- @echo off
- setlocal enabledelayedexpansion
- :Main
- cls
- set /a num2=1024*1024
- for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
- set num1=0
- set num3_str=
- set num4=
- for /f "tokens=3" %%j in ('dir /-c %%i:\ 2^>nul') do set num1=%%j
- if not "!num1!"=="0" (
- call :loop
- for /f "delims=0 tokens=*" %%k in ("!num3_str!") do set num3_str=%%k
- echo.
- echo %%i 盘剩余空间为 !num3_str! MB
- echo.
- )
- )
- pause
- goto Main
- :loop
- set /a num3=%num4%%num1:~0,1%/%num2%
- set num3_str=%num3_str%%num3%
- set /a num4=%num4%%num1:~0,1%%%%num2%
- if %num4% equ 0 set num4=
- set num1=%num1:~1%
- if not "%num1%"=="" goto loop
- goto :eof
复制代码
作者: Batcher 时间: 2011-5-31 19:50
请把代码直接贴到顶楼,以便他人查看。
作者: yukang2634 时间: 2011-6-1 11:21
我使用vbs代码实现这个功能了,所以这个问题我不问了。
作者: Batcher 时间: 2011-6-1 12:52
3# yukang2634
把你的VBS代码贴出来给大家看看吧
作者: sky02 时间: 2011-6-1 17:48
本帖最后由 sky02 于 2011-6-1 18:13 编辑
1# yukang2634
其实可以简单一点的- wmic path Win32_PerfFormattedData_PerfOS_Processor get PercentProcessorTime /value 查询CPU占用率
- wmic path Win32_PerfFormattedData_PerfOS_Memory get * /value^ | findstr "AvailableBytes" 查询可用物理内存
- wmic logicaldisk where deviceID="c:" get freespace 查询C盘剩余空间
复制代码
作者: yukang2634 时间: 2011-6-2 17:20
我也是从网上找到的三个查询当前时间点CPU、内存使用率,磁盘空间剩余量的VBS的。把我上传的hard、ram、cpu三个文本文件扩展名更改为vbs,把info文本文件扩展名更改为.bat,运行一下.bat文件就可以查出结果并导入到txt文件中。如果再配合使用计划任务和net use命令的话还可以定时通过网络传到你想放置的地方。
当初我是因为每天都要点检服务器,觉得一个一个登陆去看太麻烦,所以才想到这样。大家有什么其他的建议能简化日常工作的,欢迎提出来,谢谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |