【发布时间】:2022-07-12 00:00:35
【问题描述】:
我有一个来自我公司的库存数据库,我想根据定价对一些条目进行排序。我原本以为我必须手动完成所有操作,但我认为 Sort-Object 应该可以工作……直到我想起了 Sort-Object 及其臭名昭著的字符串排序。很简单,我会通过将其转换为整数进行排序,当然货币值的开头有 $ 之类的符号。
我使用的导致字符串排序的原始代码如下。经典200高于1000等:
$Result | Sort-Object -Property Price | Format-Table -Property Price
我试过的int代码是:
$Result | Sort-Object -Property { [int]$_.Price } | Format-Table -Property Price
这会导致类似“无法将值“$414.50”转换为类型“System.Int32”的输出。| 错误:“输入字符串的格式不正确。”有道理,无法将 $ 转换为 int。
那么有什么办法可以不用我手动排序吗?
谢谢
【问题讨论】:
-
替换
$并转换为十进制类型:... |Sort-Object -Property { $_.Price.Replace('$','') -as [decimal]}
标签: powershell sorting currency sort-object