我将在PowerShell中编写命令,它将输出我的进程名称和虚拟内存。我需要将我的值 vm 更改为兆字节。
Get-Process| Sort VM | Format-Table -p name,VM
我有这个
Name VM
---- --
Idle 0
smss 3121152
System 6053888
AEADISRV 18485248
lsm 23670784
SearchFilterHost 24240128
svchost 27344896
svchost 27922432
wininit 31449088
svchost 34127872
armsvc 34938880
lsass 35885056
WUDFHost 36036608
csrss 36552704
winlogon 37531648
svchost 37638144
如果进程> 100 Mb VM,我还需要更改颜色
Format-Table
cmdlet 不支持着色。您可以做的是更改每行的颜色。
如果您愿意放弃漂亮的表格格式,请将结果传递给管道并使用Write-Host -ForegroundColor
在单元格级别指定颜色。这样
gwmi win32_process | select name,processid,vm | % {
$params = @{ Object = $_ }
$mem = $params["Object"].VM/1MB
if([int]$mem -ge 100 ) {
write-host -nonewline -foregroundcolor yellow $mem " "
} else {
write-host -nonewline $mem " "
}
write-host $params["Object"].name " " $params["Object"].processid
}
另一种方法是将结果保存在一些临时介质上,并在以后添加颜色。这需要更多的代码。Petri 有一个很好的例子,其中包含比我愿意在这里复制粘贴的代码更多的代码。