Вывод списка процессов через tasklist с загрузкой цп в процентах

Пишу скрипт для задачи: вывод списка процессов, которые за определённый период времени нагружали цп больше определённого процента. Я не могу найти команду, чтобы вывести процессы с загрузкой цп в процентах через cmd. В powershell то же самое: выводится только информация о процессорном времени. Как можно через tasklist или get-process вывести процессы с загрузкой цп в процентах?


Ответы (1 шт):

Автор решения: niknils
:: id процесса, % использования
wmic path Win32_PerfFormattedData_PerfProc_Process get idProcess, PercentProcessorTime

Теперь парсим:

:core
@set "DATE="&@set "TIME="&@set "CD="&@set "RANDOM="
@set "_T.I_processId="&@set "_T.I_cpuUsage="
@set "_T.F_wmicData=%CD%%CD%%CD%%CD%%CD%%CD%%CD%%CD%%CD%%CD%%CD%%CD%%CD%%CD%"^
     "%CD%%CD%%CD%%CD%%CD%%CD%%DATE%%TIME%%RANDOM:~0,2%%RANDOM:~-2%"
  @set "_T.F_wmicData=%_T.F_wmicData: =0%"
  @set "_T.F_wmicData=%_T.F_wmicData:/=%"
  @set "_T.F_wmicData=%_T.F_wmicData:\=%"
  @set "_T.F_wmicData=%_T.F_wmicData:;=%"
  @set "_T.F_wmicData=%_T.F_wmicData::=%"
  @set "_T.F_wmicData=%_T.F_wmicData:.=%"
  @set "_T.F_wmicData=%_T.F_wmicData:,=%"
  @set "_T.F_wmicData=%_T.F_wmicData:-=%"
  @set "_T.F_wmicData=%_T.F_wmicData:_=%"
@set "_T.F_wmicData=%LocalAppData%\Temp\%_T.F_wmicData:~-32%"
  @call "%WinDir%\System32\WBEM\wmic.exe" path Win32_PerfFormattedData_PerfProc_Process ^
    get idProcess,PercentProcessorTime /format:list >"%_T.F_wmicData%"
    @for /f "tokens=* delims=" %%S IN ('@type "%_T.F_wmicData%" ^
        | @call "%WinDir%\System32\find.exe" /i "="') do @call :data %%S
  @del /q /f "%_T.F_wmicData%" >NUL 2>NUL.
@goto exit

:data
@if "%~1"=="IDProcess" (@set "_T.I_processId=%~2"&@goto exit) else (@set "_T.I_cpuUsage=%~2"&@goto main)

:main
@echo process %_T.I_processId% uses %_T.I_cpuUsage%%%
@goto exit

:exit

PowerShell из-под cmd:

@call "%WinDir%\System32\WindowsPowerShell\v1.0\powershell.exe" ^
      -NoProfile -NonInteractive -Command "Get-Process|Format-List Id,CPU"

win:Taskmgr.exe, как видно, показывает информацию адекватнее.

→ Ссылка