我想这样做,因此我可以为每个进程选择进程和CPU,并将它们保存在变量中。例如,选择第一个进程并将其保存为变量$ process1和$ process1CPU
$Processes = Get-Counter -ErrorAction SilentlyContinue '\Process(*)\% Processor Time' | Select-Object -ExpandProperty countersamples| Select-Object -Property instancename, cookedvalue| ? {$_.instanceName -notmatch "^(idle|_total|system)$"} | Sort-Object -Property cookedvalue -Descending| Select-Object -First 5| ft InstanceName,@{L='CPU';E={($_.Cookedvalue/100/$env:NUMBER_OF_PROCESSORS).toString('P')}}
尝试一下:
$i = 0
$process = @("Processes")
$processCpu = @("Process CPU")
Get-Process | ForEach {
$i++
$process[$i] = $_.ProcessName
$processCpu[$i] = (Get-Counter '\Process(*)\% Processor Time').CounterSamples).CookedValue
}
现在示例,如果要获取进程名称3,请使用$ Process [3],而其CPU使用$ ProcessCpu [3]