Sorting Powershell对多个列和方向进行排序
我已经设法让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
$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解决方案工作这对我来说太完美了。