7

Ho seguente risultato durante l'esecuzione di sotto dei comandi PowerShell,Come calcolare e utilizzare la memoria di più istanze di un singolo processo utilizzando PowerShell?

PS C:\> Get-Process svchost 

Handles NPM(K) PM(K)  WS(K) VM(M) CPU(s)  Id ProcessName 
------- ------ -----  ----- ----- ------  -- ----------- 
    546  34 18528  14884 136 49.76 260 svchost 
    357  14  4856  4396 47 18.05 600 svchost 
    314  17  6088  5388 42 12.62 676 svchost 
    329  17 10044  8780 50 12.98 764 svchost 
    1515  49 36104  38980 454 232.04 812 svchost 
    301  33  9736  6428 54  2.90 832 svchost 
    328  26  8844  9744 52  4.32 856 svchost 
    247  18  8144  9912 77 37.50 904 svchost 
    46  5  1504  968 14  0.02 1512 svchost 
    278  15  4048  5660 43  3.88 2148 svchost 
    98  14  2536  2460 35  0.66 2504 svchost 

qui Im cercando di calculte la dimensione della memoria totale PM(K) di processo (s) .i've seguente riga nel mio file di script ps1

get-process svchost | foreach {$mem=("{0:N2}MB " -f ($_.pm/1mb))} 

dà l'uscita nel seguente formato

17.58MB 4.79MB 6.05MB 9.99MB 35.29MB 9.56MB 8.64MB 7.95MB 1.47MB 3.95MB 2.48MB 

ma devo dimensione totale come un singolo valore come 107.75MB

Come calcolare la dimensione totale della memoria utilizzata del processo svchost?

Grazie

risposta

10

È possibile utilizzare il cmdlet Measure-Object

$measure = Get-Process svchost | Measure-Object PM -Sum 
$mem = ("{0:N2}MB " -f ($measure.sum/1mb)) 
+0

Opere bello, Nandri @ user867377 – HamTheAstroChimp

1

Inoltre, è possibile calcolare la dimensione totale di tutta la collezione con i tasti + = sintassi

$mem = 0 
Get-Process svchost | %{$mem += $_.pm} 
"{0:N2}MB " -f ($mem/1mb)