powershell - 使用 PowerShell 计算数组中的列数
问题描述
我有以下代码:
$array = Get-Process
现在,我想计算列数。我努力了:
$array.Columns.Count
$array.Columns
一切都没有运气。
我应该怎么做才能获得正确的列数?那应该是8。
<<添加于 2021 年 1 月 27 日:>>
我已将代码修改为:
$Processes = @(Get-Process | Select-Object -Property Name, Description, ProductVersion, @{Name="Application";Expression={$_.Description + " " + $_.ProductVersion}},@{Name="Executable";Expression={(($_."Path").split("\"))[-1]}} |Where {$_.Executable})
$Array = @()
$Record = [ordered] @{"Name" = "";
"Application" = ""}
ForEach ($ProcesName in $Processes)
{
$Record."Name" = $ProcesName.Name
$Record."Application" = $ProcesName.Application
$objRecord = New-Object PSObject -Property $Record
$Array += $objRecord
}
Clear-Host
Write-Host "Number of columns: $($Array.Column.Count)"
Write-Host "Number rows: $($Array.Count)"
结果是一样的:列和行都是一样的。这是不正确的。我想在具有更多列的新脚本中使用该技术。
<<2021年1月27日追加的结束部分>>
反馈表示赞赏。
诚挚的问候, TheStingPilot
解决方案
$array
是类型对象的数组System.Diagnostics.Process
。没有这样的列。这些对象具有您可以选择使用$array | ft
或作为列表显示在列中的属性$array | fl *
。您可以像这样计算属性:
$array | Get-Member -MemberType Property | measure
如果您希望答案为 8,那么您可以这样做:
$array | select Handles, NPM, PM, WS, CPU, Id, SI, Name | Get-Member -MemberType NoteProperty | measure
推荐阅读
- transpose - 如何转置多个 xlsx 文件(每个文件中有多个选项卡),并在 Excel Power Query 中组合?
- javascript - 这个正在解码十六进制字符串然后将其编码为 base64 的 Python 代码将如何用 Javascript 编写?
- c++ - Why delete a class without virtual dtor is OK if it inherits a class with virtual dtor
- reactjs - match.path 支持在根 URL 中尊重 basename(/defaultPathname) - https://example.com/defaultPathname
- objective-c - 以编程方式获取 NSView 或 NSWindow 屏幕截图?
- asp.net - 在 React 和 .NET 中跟踪用户操作
- docx - 如何格式化 pandoc 生成的 docx 文档中的列表?
- python - python matlotpib在重复显示表面时出现递归错误
- javascript - 选择,选择一个选项
- mysql - 加密数据到十进制