我设法让Powershell对不同方向的多个列进行排序;
$prop1 = @{Expression='Priority'; Descending=$true }
$prop2 = @{Expression='Date'; Ascending=$true }
(Import-Csv $BackUpDataPath"WaitList.csv") |
Sort-Object $prop1, $prop2 |
Export-Csv $BackUpDataPath"WaitList.csv" -NoType
我的问题是优先级值存储为字符串数据并按文本排序,因此输出到文件;
Date Priority
6/28/2016 16:46 2
6/28/2016 16:59 2
6/29/2016 15:27 11
6/28/2016 16:42 1
6/28/2016 16:49 1
我尝试了[int]$prop1
以及类似的方法将其更改为整数,但它似乎不起作用。线6/29/2016 15:27 11
应该是第一个,但事实并非如此。只要#的值小于10就可以了。它很好。
答案 0 :(得分:1)
尝试
$prop1 = @{Expression={[int]$_.Priority}; Descending=$true }
答案 1 :(得分:0)
看看如何转换为string-> int我发现[int]是不可靠的,所以我去了另一个解决方案。请尝试这样的事情:
"2;2;11;1" -split ";" | %{[int]$Numeric=[convert]::ToInt32($_.toString(), 10) ; add-member -NotePropertyName "Numeric" -NotePropertyValue $Numeric -InputObject $_ ; echo $_} | Sort-Object Numeric
我创建一个String数组,然后拆分它,为每个对象生成值的Int32版本,然后将新成员添加到输入对象,我打印这个新对象,最后只需按新的排序数组属性。
我尝试将脚本包含在哈希表中,用于sort-object的“property”参数但不起作用:(。
希望这可以解决您的问题。
问候。