-2

I am trying to list the image file names from a folder using below powershell script

Get-ChildItem C:\TestExtraction\ps\Images | Select-Object Name | Sort-Object Name

I have below as output

image1.png  
image10.png 
image100.png
image101.png
image102.png
image103.png
image104.png
image105.png
image106.png
image107.png
image108.png
image109.png
image11.png 
image110.png
image111.png
image112.png
image113.png
image114.png
image115.png
image116.png
image117.png
image118.png
image119.png
image12.png 
image120.png
image121.png
image122.png

What am I missing in this simple script for not being sorted correctly like

image1.png
image2.png
image3.png
...
Satheesh Panduga
  • 818
  • 2
  • 13
  • 32

1 Answers1

1

Roman Kuzmin's Answer in the question mentioned by JamesC works perfect.

$ToNatural = { [regex]::Replace($_, '\d+', { $args[0].Value.PadLeft(20) }) }
Gci *.jpg | Sort-Object $ToNatural |select Name

Sample Output

Name
----
pic1.jpg
pic2.jpg
pic3.jpg
pic4.jpg
pic5.jpg
pic6.jpg
pic7.jpg
pic8.jpg
pic9.jpg
pic10.jpg
Community
  • 1
  • 1