如何获取批处理文件中的当前CPU使用率和可用内存?

use*_*150 8 ram batch-file cpu-usage

我正在创建一个简单的脚本,输出当前登录的用户,当前系统的CPU使用率和可用内存?

我已设法让当前用户登录,但是是否可以获得CPU使用率和内存?

到目前为止这是我的代码.

@echo off

for /f "tokens=3 delims=\" %%i in ("%USERPROFILE%") do (set USER=%%i) 2>&1  
echo "Logged On User: %USER%"  
echo. 

pause
Run Code Online (Sandbox Code Playgroud)

为了获得cpu使用,我尝试了这个命令,但它似乎没有工作.

for /f "skip=1" %p in ('wmic cpu get loadpercentage') do 
echo %p%
Run Code Online (Sandbox Code Playgroud)

unc*_*eat 7

首先,从批处理文件运行时,for循环变量需要两个百分比符号 - %%p

其次,你需要回应%%p,而不是%p%:

for /f "skip=1" %%p in ('wmic cpu get loadpercentage') do echo %%p
Run Code Online (Sandbox Code Playgroud)

从命令行:

for /f "skip=1" %p in ('wmic cpu get loadpercentage') do echo %p
Run Code Online (Sandbox Code Playgroud)


Mon*_*aft 5

您始终可以使用该systeminfo命令,但随后将被迫经历一个简短的加载屏幕

set totalMem=
set availableMem=
set usedMem=
REM You need to make a loop
for /f "tokens=4" %%a in ('systeminfo ^| findstr Physical') do if defined totalMem (set availableMem=%%a) else (set totalMem=%%a)
set totalMem=%totalMem:,=%
set availableMem=%availableMem:,=%
set /a usedMem=totalMem-availableMem
Echo Total Memory: %totalMem%
Echo Used Memory: %usedMem%
Run Code Online (Sandbox Code Playgroud)

这应该正是你想要的。可以轻松修改此代码以显示虚拟内存。(使用set totalMem=%totalMem:,=%andset availableMem=%availableMem:,=%可以去掉变量中的逗号。)

莫娜