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/
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
@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
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
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