How to get the current CPU usage and available memory in batch file?

后端 未结 4 1309
盖世英雄少女心
盖世英雄少女心 2021-02-06 04:17

I am creating a simple script that outputs the current user logged in, CPU usage for the current system and the available memory?

I have managed to get the current user/

相关标签:
4条回答
  • 2021-02-06 04:34

    Firstly, when running from a batch file, the for loop variable needs two percentage symbols - %%p

    Secondly, you need to echo %%p, not %p%:

    for /f "skip=1" %%p in ('wmic cpu get loadpercentage') do echo %%p
    

    From the command line:

    for /f "skip=1" %p in ('wmic cpu get loadpercentage') do echo %p
    
    0 讨论(0)
  • 2021-02-06 04:37
    @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=!Times! + 1
    
    )
    
    echo Percentage = %Cpusage0%
    
    pause
    
    0 讨论(0)
  • 2021-02-06 04:42

    You could always utilise the systeminfo command, but then would be forced to go through a brief loading screen

    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%
    

    And that should do exactly what you want. This code can easily be modified to show Virtual Memory as well. (The use of set totalMem=%totalMem:,=% and set availableMem=%availableMem:,=% gets rid of commas in the variables.)

    Mona

    0 讨论(0)
  • 2021-02-06 04:46
    typeperf "\processor(_Total)\% Processor Time"  -SC 1 -y
    

    or

    C:\>logman create counter CPU_Usage3 -c "\Processor(_Total)\% Processor Time" -f csv -o %temp%\cpu.csv
    The command completed successfully.
    
    C:\>logman start CPU_Usage3
    The command completed successfully.
    
    C:\>logman stop CPU_Usage3
    The command completed successfully.
    
    C:\>type %temp%\cpu*.csv
    The system cannot find the file specified.
    

    Typeperf is not available for WindowsXP home ,but logman requires admin privileges and creates a temp file. TYPEPERF . LOGMAN . For the memory check these counters: http://ss64.com/nt/syntax-performance-counters.html

    0 讨论(0)
提交回复
热议问题