Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Powershell: Sort percent number

Tags:

powershell

Got a small problem with sorting percent numbers. I just wrote a simple script to test:

function get-percent{
$obj1 = New-Object PSObject
$percentUsed1="{0:P0}" -f (100/100)      
$obj1 | Add-Member -membertype NoteProperty -Name 'Percent' -Value $percentUsed1

$obj2 = New-Object PSObject
$percentUsed2="{0:P0}" -f (99/100)      
$obj2 | Add-Member -membertype NoteProperty -Name 'Percent' -Value $percentUsed2

$obj3 = New-Object PSObject
$percentUsed3="{0:P0}" -f (8/100)      
$obj3 | Add-Member -membertype NoteProperty -Name 'Percent' -Value $percentUsed3

$obj4 = New-Object PSObject
$percentUsed4="{0:P0}" -f (70/100)      
$obj4 | Add-Member -membertype NoteProperty -Name 'Percent' -Value $percentUsed4


write $obj1
write $obj2
write $obj3
write $obj4

}


get-percent | sort-object 'Percent' -descending |ft

Here is what i get:

Percent

99%
8%
70%
100 %

Normally, I should have: 100 % , 99%, 70%... Any ideas guys ? Thx.

like image 789
MatStack Avatar asked Jan 21 '26 13:01

MatStack


1 Answers

Try:

get-percent | sort-object  { [INT]($_.percent -replace '%')  } -descending 

In this way sort-object can sort by [INT] and not by [String] as before.

like image 114
CB. Avatar answered Jan 24 '26 21:01

CB.



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!