powershell - 选择并迭代属性
问题描述
我正在尝试从属性列表中读取内容,其中一个属性是对象。我需要使用什么来读取字符串和对象属性?
这是Get-Member
列表的输出
PS> $r | 获取会员 名称 MemberType 定义 ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode 方法 int GetHashCode() GetType 方法类型 GetType() ToString 方法字符串 ToString() ActivityName 属性字符串 ActivityName {get;} DurationInMs 属性 System.Nullable[int] DurationInMs {get;} 错误属性 System.Object 错误 {get;} 输入属性 System.Object 输入 {get;} 输出属性 System.Object 输出 {get;} Status 属性字符串 Status {get;} PS> $r.输出 | 获取会员 ... 名称 属性字符串 名称 {get;} 下一个属性 Newtonsoft.Json.Linq.JToken Next {get;} 路径属性字符串路径 {get;} 上一个属性 Newtonsoft.Json.Linq.JToken 上一个 {get;} 根属性 Newtonsoft.Json.Linq.JToken 根 {get;} ...
(这是一个很长的列表,隐藏了不必要的细节)
我正在尝试以表格格式选择 ActivityName、DurationInMs 和输出值。Output 对象中的 Root 属性具有 dataRead、dataWritten 属性的值。
这是我尝试过的:
$r | Select ActivityName,DurationInMs
输出:
活动名称 DurationInMs ------------ ------------ 第 78 天 设置 TS 15 LKUP_FileControl 12206 复制路径 38585
我也试过这个:
$r.Output | select @{name="dataRead"; expression={$_.Root.dataRead.Value}},@{name="dataWritten"; expression={$_.Root.dataWritten.Value}}
输出:
数据读取数据写入 -------- ------------ 520114512 520114512 520114512 520114512 520114512 520114512 0 0 0 0 0 0 3199091788 3199091788 3199091788 3199091788 3199091788 3199091788
(注意:这会导致重复,因为 Root 属性内部还有其他嵌套属性)
我希望输出采用表格格式,例如:
ActivityName DurationInMs dataRead dataWritten ------------ ------------ --------- ------------ 第 78 天 设置 TS 15 520114512 520114512 LKUP_FileControl 12206 0 0 复制路径 38585 3199091788 3199091788
如何在 PowerShell 中执行此操作?
解决方案
结合您的两个代码片段以获得所需的结果:
$r | Select-Object ActivityName, DurationInMs,
@{n='dataRead';e={$_.Output.Root.dataRead.Value}},
@{n='dataWritten';e={$_.Output.Root.dataWritten.Value}}
推荐阅读
- c# - 无法从 Web 应用程序连接到 HostGator(共享主机)SQL DB
- macos - 如何创建开发/测试环境以使用 azure 在 macOS(catalina/bigsur)上测试 Outlook javascript 添加?
- php - how to display ACF select field(drop down) in my website product add page?
- reactjs - Resizable column in material-table react
- swift - http域基地址中未连接的套接字
- android - 强制 Android Webview 使用 Chrome 或 Firefox
- c# - 使用多个显示器和不同 DPI 查找虚拟屏幕宽度
- html - CSS 不工作,我在做什么,我检查了所有部分并进行了硬刷新,但它不工作?
- intellij-idea - 辅助监视器上的 IntelliJ IDEA 组窗口
- google-cloud-platform - Cloud Scheduler 页面访问问题 - 共享项目