CMD里面使用命令获取磁盘使用率
10M环境:Windows Server 2016 Datacenter
需求:在CMD里面使用命令行获取磁盘当前使用率,只返回一个数值,比如当前D盘使用率是90,则CMD里面查询结果返回90,请问有高手知道怎么写的吗
我来答
添加附件
收藏
复制链接
微信扫码分享
在小程序上查看
分享
添加附件
问题补充
2条回答
默认
最新
@echo off &setLocal EnableDelayedExpansion&(for /f "skip=1 tokens=1,2 delims= " %a in ('wmic path Win32_PerfFormattedData_PerfDisk_LogicalDisk get name^,PercentFreeSpace') do (echo %a | findstr "C:" >nul && (set /a t=%b >nul&set /a t2=100-t>nul& echo %t2% ) ))&endlocal

看你具体要查的是读写使用率还是空间占用率 ,把里面查询的字段替换一下就行了
PercentIdleTime 读写空闲
PercentFreeSpace 空间占用空间
由于Win32_PerfFormattedData_PerfDisk_LogicalDisk 这玩意机制的问题,第一次获得是无效的,要查第二次才会正常输出
使用 Win32_PerfFormattedData_PerfDisk_LogicalDisk 的注意事项
在使用 Win32_PerfFormattedData_PerfDisk_LogicalDisk 时,需要注意:
(1)不能使用 objWMIService.ExecQuery 执行 Select 语句来获取磁盘性能数据
(2)必须使用 WbemScripting.SWbemRefresher 将 Win32_PerfFormattedData_PerfDisk_LogicalDisk 加入,然后不断调用 Refresh 方法刷新数据来获取性能信息
(3)第一次刷新的时候,并不能获取有用的数据,从第二次开始,才能获取到磁盘性能数据
(4)以上问题与 WMI 中性能监控使用计数器的机制有关
评论
有用 1
1 可以参考一下。
#coding=utf8
2 import psutil
3 cpu = {'user' : 0, 'system' : 0, 'idle' : 0, 'percent' : 0}
4 mem = {'total' : 0, 'avaiable' : 0, 'percent' : 0, 'used' : 0, 'free' : 0}
5
6 #磁盘名称
7 disk_id = []
8 #将每个磁盘的total used free percent 分别存入到相应的list
9 disk_total = []
10 disk_used = []
11 disk_free = []
12 disk_percent = []
13
14 #获取磁盘
15 def get_disk_info():
16 for id in psutil.disk_partitions():
17 if 'cdrom' in id.opts or id.fstype == '':
18 continue
19 disk_name = id.device.split(':')
20 s = disk_name[0]
21 disk_id.append(s)
22
23 disk_info = psutil.disk_usage(id.device)
24
25 disk_total.append(disk_info.total)
26 disk_used.append(disk_info.used)
27 disk_free.append(disk_info.free)
28 disk_percent.append(disk_info.percent)
29
30 #获取CPU信息
31 def get_cpu_info():
32 cpu_times = psutil.cpu_times()
33 cpu['user'] = cpu_times.user
34 cpu['system'] = cpu_times.system
35 cpu['idle'] = cpu_times.idle
36 cpu['percent'] = psutil.cpu_percent(interval=2)
37 #获取内存信息
38 def get_mem_info():
39 mem_info = psutil.virtual_memory()
40 mem['total'] = mem_info.total
41 mem['available'] = mem_info.available
42 mem['percent'] = mem_info.percent
43 mem['used'] = mem_info.used
44 mem['free'] = mem_info.free
45
46 if __name__ == '__main__':
47 get_cpu_info()
48 cpu_status = cpu['percent']
49 print u"CPU使用率: %s %%" % cpu_status
50 get_mem_info()
51 mem_status = mem['percent']
52 print u"内存使用率: %s %%" % mem_status
53 get_disk_info()
54 for i in range(len(disk_id)):
55 print u'%s盘空闲率: %s %%' % (disk_id[i],100 - disk_percent[i])
56 raw_input("Enter enter key to exit...")
评论
有用 0回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏

