[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理怎样查询当前时间点操作系统信息?

我现在想利用批处理文件查询当前时间点操作系统的三个信息:CPU负载、内存使用量及各磁盘分区的剩余空间并能导出结果到txt文件。但是个人能力有限,不会编写这样的批处理文件,所以想请各位精通批处理的网友帮帮忙给编写一个,先谢过了。
我在网上有找到一个查询当前时间点操作系统CPU负载&内存使用量的批处理,也找到了一个查询当前时间点操作系统磁盘分区剩余空间的批处理。可不会将这两个合并为一个批处理文件,如能帮忙合并成一个也行,也先谢过了。两个批处理文件我打包上传了。
第一个代码:
  1. @echo off
  2. color 2
  3. setlocal EnableDelayedExpansion
  4. set /a memory=0
  5. for /f "tokens=1,2,3,4" %%a in ('tasklist /FO LIST ^| find "内存使用"') do (
  6. REM echo %%a %%b %%c
  7. for /f "tokens=1,2,3,4 delims=," %%i in ('echo %%c') do (
  8.   set /a data=%%i
  9.   if not "%%j"=="" (
  10.    set data1=%%j
  11.    
  12.    set bit1=!data1:~0,1!
  13.    if !bit1!==0 set data1=!data1:~1!
  14.    REM echo data1=!data1!
  15.    
  16.    set bit1=!data1:~0,1!
  17.    if !bit1!==0 set data1=!data1:~1!
  18.    REM echo data1=!data1!
  19.    
  20.    set /a data=data*1000+!data1!
  21.   )
  22.   if not "%%k"=="" (
  23.    set data1=%%k
  24.    
  25.    set bit1=!data1:~0,1!
  26.    if !bit1!==0 set data1=!data1:~1!
  27.    REM echo data1=!data1!
  28.    
  29.    set bit1=!data1:~0,1!
  30.    if !bit1!==0 set data1=!data1:~1!
  31.    REM echo data1=!data1!
  32.    
  33.    set /a data=data*1000+!data1!
  34.   )
  35. )
  36. set /a memory=memory+data
  37. )
  38. set /a memoryMB=!memory!/1024
  39. echo 内存使用 !memoryMB! MB
  40. for /f "skip=1" %%i in ('wmic CPU get loadpercentage') do echo CPU使用 %%i%
  41. pause>nul
  42. %0
复制代码
第二个代码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :Main
  4. cls
  5. set /a num2=1024*1024
  6. 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 (
  7.     set num1=0
  8.     set num3_str=
  9.     set num4=
  10.     for /f "tokens=3" %%j in ('dir /-c %%i:\ 2^>nul') do set num1=%%j
  11.     if not "!num1!"=="0" (
  12.         call :loop
  13.         for /f "delims=0 tokens=*" %%k in ("!num3_str!") do set num3_str=%%k
  14.         echo.
  15.         echo        %%i 盘剩余空间为 !num3_str! MB
  16.         echo.
  17.     )
  18. )
  19. pause
  20. goto Main
  21. :loop
  22. set /a num3=%num4%%num1:~0,1%/%num2%
  23. set num3_str=%num3_str%%num3%
  24. set /a num4=%num4%%num1:~0,1%%%%num2%
  25. if %num4% equ 0 set num4=
  26. set num1=%num1:~1%
  27. if not "%num1%"=="" goto loop
  28. goto :eof
复制代码

请把代码直接贴到顶楼,以便他人查看。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

我使用vbs代码实现这个功能了,所以这个问题我不问了。

TOP

3# yukang2634


把你的VBS代码贴出来给大家看看吧
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 sky02 于 2011-6-1 18:13 编辑

1# yukang2634


其实可以简单一点的
  1. wmic path Win32_PerfFormattedData_PerfOS_Processor get PercentProcessorTime /value    查询CPU占用率
  2. wmic path Win32_PerfFormattedData_PerfOS_Memory get * /value^ | findstr "AvailableBytes"    查询可用物理内存
  3. wmic logicaldisk where deviceID="c:" get freespace   查询C盘剩余空间
复制代码

TOP

我也是从网上找到的三个查询当前时间点CPU、内存使用率,磁盘空间剩余量的VBS的。把我上传的hard、ram、cpu三个文本文件扩展名更改为vbs,把info文本文件扩展名更改为.bat,运行一下.bat文件就可以查出结果并导入到txt文件中。如果再配合使用计划任务和net use命令的话还可以定时通过网络传到你想放置的地方。
当初我是因为每天都要点检服务器,觉得一个一个登陆去看太麻烦,所以才想到这样。大家有什么其他的建议能简化日常工作的,欢迎提出来,谢谢!

TOP

返回列表