You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将变量值用作PowerShell中Sort-Object的排序字段?

使用变量指定PowerShell排序字段(兼容PS4/PS5)

要实现用变量替代硬编码的排序字段,同时兼容PowerShell 4和5版本,直接通过变量动态访问对象属性即可,具体实现如下:

硬编码原代码

$XLM.Products.Product | sort {[decimal]$_.price} | % { [void]$XML.Products.AppendChild($_) }

变量化实现代码

# 定义排序字段变量
$XML_Node_Attribute_Name = 'price'

# 动态指定排序字段执行排序
$XLM.Products.Product | Sort-Object { [decimal]$_.$XML_Node_Attribute_Name } | ForEach-Object {
    [void]$XML.Products.AppendChild($_)
}

关键说明

  • PowerShell 4和5原生支持$_.$变量名的动态属性访问语法,无需额外处理
  • 保留[decimal]类型转换至关重要:如果直接按字符串排序,会出现数值逻辑错误(例如"10"会被排在"2"之前)
  • 代码中使用命令全称Sort-Object/ForEach-Object(缩写sort/%也可正常运行,全称可读性更强)
  • 确保$XML_Node_Attribute_Name的值与目标节点的属性/成员名称完全一致,避免拼写错误导致的属性找不到问题

内容的提问来源于stack exchange,提问作者NOYB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:27:08