Powershell 对象排序 属性 - 降序 - 不工作
Powershell Objects Sorting On Property - Descending - Not working
我正在对文本文件的内容进行如下排序
APPLE|FINAL|20220122065900|0
APPLLE|PRE|20220122061500|0
MANGO|PRE|20220126113400|0
MANGO|PRE|20220125102200|0
MANGO|ASSYN|20220125102200|0
$file = Get-Content D:\FOXXXX\DOWNTIME\POWER\test.txt
Foreach($line in $file)
{
New-Object PSObject -Property @{
"t1" = $line.split("|")[0]
"t2" = $line.split("|")[1]
} | Sort-Object -Property t1 -Descending |Select-Object t1, t2
}
我得到以下未排序的输出。请让我知道我做错了什么
t1 t2
-- --
APPLE FINAL
APPLLE PRE
MANGO PRE
MANGO PRE
MANGO ASSYN
您正在对集合中的每个元素进行排序,而不是对所有集合进行排序,换句话说,Sort-Object
应该在循环之外:
$collection = Foreach($line in $file)
{
New-Object PSObject -Property @{
"t1" = $line.split("|")[0]
"t2" = $line.split("|")[1]
}
}
$collection | Sort-Object -Property t1 -Descending
另一方面,您的文本文件是 竖线分隔的,您可以使用 ConvertFrom-Csv
或 Import-Csv
(如果来自文件)将其转换进入对象:
@'
APPLE|FINAL|20220122065900|0
APPLLE|PRE|20220122061500|0
MANGO|PRE|20220126113400|0
MANGO|PRE|20220125102200|0
MANGO|ASSYN|20220125102200|0
'@ | ConvertFrom-Csv -Delimiter '|' -Header T1, T2 |
Sort-Object T1 -Descending
我正在对文本文件的内容进行如下排序
APPLE|FINAL|20220122065900|0
APPLLE|PRE|20220122061500|0
MANGO|PRE|20220126113400|0
MANGO|PRE|20220125102200|0
MANGO|ASSYN|20220125102200|0
$file = Get-Content D:\FOXXXX\DOWNTIME\POWER\test.txt
Foreach($line in $file)
{
New-Object PSObject -Property @{
"t1" = $line.split("|")[0]
"t2" = $line.split("|")[1]
} | Sort-Object -Property t1 -Descending |Select-Object t1, t2
}
我得到以下未排序的输出。请让我知道我做错了什么
t1 t2
-- --
APPLE FINAL
APPLLE PRE
MANGO PRE
MANGO PRE
MANGO ASSYN
您正在对集合中的每个元素进行排序,而不是对所有集合进行排序,换句话说,Sort-Object
应该在循环之外:
$collection = Foreach($line in $file)
{
New-Object PSObject -Property @{
"t1" = $line.split("|")[0]
"t2" = $line.split("|")[1]
}
}
$collection | Sort-Object -Property t1 -Descending
另一方面,您的文本文件是 竖线分隔的,您可以使用 ConvertFrom-Csv
或 Import-Csv
(如果来自文件)将其转换进入对象:
@'
APPLE|FINAL|20220122065900|0
APPLLE|PRE|20220122061500|0
MANGO|PRE|20220126113400|0
MANGO|PRE|20220125102200|0
MANGO|ASSYN|20220125102200|0
'@ | ConvertFrom-Csv -Delimiter '|' -Header T1, T2 |
Sort-Object T1 -Descending