排除戳记中的数组参数

时间:2018-03-05 10:51:07

标签: powershell

我正在尝试对字符串的结果进行排序,以仅显示特定参数。

我还想从结果中排除idle_total进程

$list = (Get-Counter '\Process(*)\% Processor Time').CounterSamples | Where-Object {$_.CookedValue -gt 1}

我该怎么做?我已经尝试使用clear-variablesort函数,但每次运行时我都会遇到错误。

抱歉英语不好:)

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情 -

$list | where-object {$_.InstanceName -notmatch 'idle' -and $_.InstanceName -notmatch '_total'}

或者您可以在代码中添加条件 -

$list = (Get-Counter '\Process(*)\% Processor Time').CounterSamples | Where-Object {$_.CookedValue -gt 1 -and $_.InstanceName -notmatch 'idle' -and $_.InstanceName -notmatch '_total'}

通过这两种方式,您可以从搜索结果中排除idle_total,然后根据需要对其进行排序。

要从CPU%中加入WmiObject并从搜索中排除idle_total,您可以在查询WmiObject时直接将其排除在外,如下所示 -

$properties=@( @{Name="Process Name"; Expression = {$_.name}}, @{Name="CPU (%)"; Expression = {$_.PercentProcessorTime}}, @{Name="Memory (MB)"; Expression ={[Math]::Round(($_.workingSetPrivate / 1mb),2)}} )

Get-WmiObject -class Win32_PerfFormattedData_PerfProc_Process | Where-Object {$_.Name -notmatch 'Idle' -and $_.Name -notmatch '_total'} | Select-Object $properties | Format-Table -AutoSize