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