在 Powershell 的表中格式化计数器数据

Posted

技术标签:

【中文标题】在 Powershell 的表中格式化计数器数据【英文标题】:Formatting Counter Data in a Table in Powershell 【发布时间】:2012-06-13 18:26:32 【问题描述】:

我正在尝试使用以下脚本创建一个用于监控目的的表:

$w3wppriv = get-counter '\process(w3w*)\working set - private'
$w3wpid = get-counter '\process(w3w*)\id process'

0..($w3wpid.Length -1) | 
select-object (
   @n="Proces ID"; e=$w3wpid.CounterSamples.Cookedvalue[$_],
   @n="Memory Usage(KB)";  e=$w3wppriv.CounterSamples.CookedValue[$_]
              ) | 
   format-table -auto;

我正在尝试获得以下输出:

Process ID Memory Usage(KB)
---------- ----------------
44353      234324343
35343      230909324
2341       932423234

但是,输出未显示任何数据。我想它与数组有关,但我不清楚如何解决这个问题。谢谢!

【问题讨论】:

我想通了...花了我一个小时 :) 不能发帖 8 但这是答案: $w3wppriv = ((get-counter -counter '\process(w3w*)\working set - private').CounterSamples) |选择对象-expandpropertycookvalue $w3wpid = ((get-counter '\process(w3w*)\id process').CounterSamples) |选择对象-expandpropertycookvalue 0..($w3wpid.Length -1) |选择对象 (@n="进程 ID"; e=$w3wpid[$_], @n="内存使用情况(KB)"; e=$w3wppriv[$_]) |格式表-auto; 我一定错过了什么。你不能这样做:Get-Process | Format-Table -property Id, WS -autosize 我正在寻找workingset -private...与ws非常不同。 好吧,您可以输出运行“get-process |”时看到的“Get-Process”的任何属性。 get-member',但这并不是重点。我只是建议您可以以比“get-counter”更具方向性的方式使用“get-process”。 【参考方案1】:

这是另一个只知道如何搜索的例子:)

$w3wppriv = ((get-counter -counter '\process(w3w*)\working set - private').CounterSamples) | select-object -expandproperty cookedvalue
$w3wpid = ((get-counter '\process(w3w*)\id process').CounterSamples) | select-object -expandproperty cookedvalue

0..($w3wpid.Length -1) | 
   select-object (
       @n="Proces ID"; e=$w3wpid[$_],
       @n="Memory Usage(KB)";  e=$w3wppriv[$_]
          ) | 
   format-table -auto;

【讨论】:

以上是关于在 Powershell 的表中格式化计数器数据的主要内容,如果未能解决你的问题,请参考以下文章

在 Big Query 的表中查找特定条件的属性计数

将excel数据导入sql中,出现科学计数法

MySql 的行数并插入到计数的表中

如何在 sql server 2008 的同一张表中使用计数和分组方式和自连接?

如何获取表中的所有数据,如果在一列中重复相同的值,该行应该计数一次?

将记录计数插入到不同的表中