如何从PowerShell哈希表中提取指定PR对应的CD日期?
PowerShell 提取哈希表中符合条件的CD日期值
解决方案
要仅获取PR字段包含'DS-8069'的CD日期值,只需在过滤后提取目标属性即可,以下是两种实现方式:
方法1:使用Select-Object提取属性
$hashtable.Value | Where-Object { $_.PR -like '*DS-8069*' } | Select-Object -ExpandProperty CD
方法2:使用ForEach-Object直接访问属性
$hashtable.Value | Where-Object { $_.PR -like '*DS-8069*' } | ForEach-Object { $_.CD }
如果你的需求是PR字段以'DS-8069结尾(而非包含),可以保留EndsWith方法:
$hashtable.Value | Where-Object { $_.PR.EndsWith('DS-8069') } | Select-Object -ExpandProperty CD
原命令无效原因说明
- 多余的
GetEnumerator():$hashtable.Value是对象集合而非哈希表,无需调用GetEnumerator()遍历。 - 错误使用
-contains:-contains用于判断集合是否包含指定元素,而非字符串是否包含子串。检查字符串包含应使用-like '*子串*'或String.Contains()方法。 - 缺少属性提取步骤:你之前的有效命令仅过滤出符合条件的完整对象,未添加提取CD属性的操作。
内容的提问来源于stack exchange,提问作者Lance Lyons
相关产品推荐
相关产品推荐

