暂无图片
CMD里面使用命令获取磁盘使用率
我来答
分享
猫瞳映月
2022-03-07
CMD里面使用命令获取磁盘使用率
暂无图片 10M

环境:Windows Server 2016 Datacenter

需求:在CMD里面使用命令行获取磁盘当前使用率,只返回一个数值,比如当前D盘使用率是90,则CMD里面查询结果返回90,请问有高手知道怎么写的吗

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
DarkAthena
@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

image.png

看你具体要查的是读写使用率还是空间占用率 ,把里面查询的字段替换一下就行了
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
暂无图片
猫瞳映月
题主
2022-03-08
太详细了,太厉害了,大佬果然厉害,太感谢了
积土为山
 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
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏