【发布时间】:2021-05-12 21:11:57
【问题描述】:
我没有得到仅使用 W MIC 的批处理脚本中内存利用率百分比的结果。我只得到总内存和可用内存(以字节为单位)。
那么如何获得以兆字节为单位的那些以及如何计算内存利用率的百分比?
代码:-
@echo off
setlocal enabledelayedexpansion
set Times=0
for /f "skip=1" %%p in ('wmic cpu get loadpercentage') do (
set Cpusage!Times!=%%p
set /A Times+=1
)
echo CPU Percentage = %Cpusage0%%%
set Times=0
for /f "skip=1" %%p in ('wmic ComputerSystem get TotalPhysicalMemory') do (
set totalMem!Times!=%%p
set /A Times+=1
)
set Times=0
for /f "skip=1" %%p in ('wmic OS get FreePhysicalMemory') do (
set availableMem!Times!=%%p
set /A Times+=1
)
set Times=0
for /f "skip=1" %%p in ('wmic OS get FreePhysicalMemory ^|findstr physical') do (
set /a UsedMem= totalMem - availableMem
set usedMem!Times!=%%p
set /A Times+=1
)
set /a usedpercent=(usedMem*100)/totalMem
echo Free MEMORY = %availableMem0% Bytes
echo Total MEMORY = %totalMem0% Bytes
echo Used MEMORY = %UsedMem0% Bytes
echo Memory Utilization = %usedpercent0%%%
pause
【问题讨论】:
-
这个任务在
cmd恐怕是无解了。下一个命令for /f "skip=1" %G in ('wmic ComputerSystem get TotalPhysicalMemory') do @for %g in (%G) do set /a %g返回Invalid number. Numbers are limited to 32-bits of precision。切换到 PowerShell。 -
我已经添加了一个关于相同的代码(代码号 2),请查看并帮助完成。我需要类似的输出:- 总内存:8105 MB 已用内存:3760 MB 可用内存:4345 MB 内存使用率 = 46% CPU 使用率 = 2%,我已经通过使用系统信息实现了这个输出,但我需要在 WMIC 中同样的输出。请帮忙
标签: windows batch-file scripting