Sorting Powershell对多个列和方向进行排序

Sorting Powershell对多个列和方向进行排序,sorting,csv,powershell,Sorting,Csv,Powershell,我已经设法让Powershell按不同的方向对多个列进行排序 $prop1 = @{Expression='Priority'; Descending=$true } $prop2 = @{Expression='Date'; Ascending=$true } (Import-Csv $BackUpDataPath"WaitList.csv") | Sort-Object $prop1, $prop2 | Export-Csv $BackUpDataPath"WaitLis

我已经设法让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,它就可以排序了。

试试看

$prop1 = @{Expression={[int]$_.Priority}; Descending=$true }

查看如何从字符串->int转换,我发现[int]不可靠,所以我选择了另一种解决方案。请尝试以下方式:

"2;2;11;1" -split ";" | %{[int]$Numeric=[convert]::ToInt32($_.toString(), 10) ; add-member -NotePropertyName "Numeric" -NotePropertyValue $Numeric -InputObject $_ ; echo $_} | Sort-Object Numeric
我创建一个字符串数组,然后将其拆分,为每个对象生成Int32版本的值,然后向输入对象添加一个新成员,打印这个新对象,最后根据新属性对数组进行排序

我试图在sort对象的“property”参数的哈希表中包含脚本,但没有成功:(

希望这能解决你的问题


关于。

在我把整个部分放在()'s($prop1=@{Expression={[int]$\uU5.Priority};Descending=$true})中之后,它就起作用了。有趣的是,我尝试了类似的配置。只是没有达到这个配置。谢谢。很高兴听到这个消息,但不必在它周围加括号。我让你使用了()'s。没有了它们,我就错了找不到接受参数“=”的位置参数"。我刚刚意识到为什么它不起作用。我在第3行实现了您的更改,而不是最初的$prop1声明。再次感谢。啊,好的,所以您尝试直接将其传递给Sort Object cmdlet-是的,在这种情况下,您必须将其括在括号中,以便将其作为子表达式进行计算。感谢您的回答。DAXaholics解决方案工作这对我来说太完美了。