12
我是電源外殼的新手。在PowerShell中自定義排序
我的問題是,我在下面的格式文件名:
[ignore-prefix]-[important-middle]-[ignore-suffix]-[name-with-digits]
我需要按照以下規則進行排序:首先按名稱由中間部分,然後,以自然順序(即foobar10> foobar2) 。我不知道前綴值,但我知道分隔符(破折號)。
所以我的第一次嘗試,自然:
filelist | Sort-Object -property @{Expression=`
{$_.FullName.SubString($_.FullName.IndexOf("-")+1)}}
這有後綴影響順序(忽略-AAA-1ignore-wname)忽略-AAA-2ignore-aname),所以之前排序的問題:
$filelist | Sort-Object -property @{Expression=`
{$_.FullName.SubString($_.FullName.IndexOf("-")+1,`
$_.FullName.SubString($_.FullName.IndexOf("-")+1).IndexOf("-"))}}
好吧,那種在中間,但已經不笨。如果我要添加更糟糕的自然排序。什麼更優雅的方式來做到這一點?
「$ part1,$ part2,$ part2」應該是「$ part1,$ part2,$ part3」 謝謝! – DennyRolling 2010-11-10 17:27:51
是的,我也注意到了。固定。 – 2010-11-10 17:30:37