web-dev-qa-db-fra.com

Obtenir l'utilisation du processeur à partir de l'invite de commande Windows

Comment puis-je obtenir une utilisation totale du processeur à partir de l'invite de commande Windows ?:

Production attendue:

27%
40
Mike
C:\> wmic cpu get loadpercentage
LoadPercentage
0

Ou

C:\> @for /f "skip=1" %p in ('wmic cpu get loadpercentage') do @echo %p%
4%
78
Alex K.

Ce qui suit fonctionne correctement sous Windows 7 Ultimate à partir d’une invite de commande élevée:

C:\Windows\system32>typeperf "\Processor(_Total)\% Processor Time"

"(PDH-CSV 4.0)","\\vm\Processor(_Total)\% Processor Time"
"02/01/2012 14:10:59.361","0.648721"
"02/01/2012 14:11:00.362","2.986384"
"02/01/2012 14:11:01.364","0.000000"
"02/01/2012 14:11:02.366","0.000000"
"02/01/2012 14:11:03.367","1.038332"

The command completed successfully.

C:\Windows\system32>

Ou pour un instantané:

C:\Windows\system32>wmic cpu get loadpercentage
LoadPercentage
8
11
mdm
typeperf "\processor(_total)\% processor time"

fonctionne sur Win7, il vous suffit d’extraire vous-même la valeur en pourcentage de la dernière chaîne citée.

8
PowerApp101

typeperf m'indique des problèmes lorsqu'il ne fonctionne pas de manière aléatoire sur certains ordinateurs (Error: No valid counters.) ou si le compte dispose de droits insuffisants. Sinon, il existe un moyen d'extraire uniquement la valeur de sa sortie. Il reste cependant à arrondir:

@for /f "delims=, tokens=2" %p in ('typeperf "\Processor(_Total)\% Processor Time" -sc 3 ^| find ":"') do @echo %~p%

Powershell dispose de deux cmdlets pour obtenir le pourcentage d'utilisation de tous les processeurs: Get-Counter (préféré) ou Get-WmiObject

Powershell "Get-Counter '\Processor(*)\% Processor Time' | Select -Expand Countersamples | Select InstanceName, CookedValue"

Ou,

Powershell "Get-WmiObject Win32_PerfFormattedData_PerfOS_Processor | Select Name, PercentProcessorTime"


Pour obtenir la charge totale du processeur avec une sortie formatée exactement comme la question:

Powershell "[string][int](Get-Counter '\Processor(*)\% Processor Time').Countersamples[0].CookedValue + '%'"

Ou,

 Powershell "gwmi Win32_PerfFormattedData_PerfOS_Processor | Select -First 1 | %{'{0}%' -f $_.PercentProcessorTime}"
1
Amit Naidu