Sono nuovo di potere shell.ordinamento personalizzato in powershell
Il mio problema è che che ho i nomi dei file in formato seguente:
[ignore-prefix]-[important-middle]-[ignore-suffix]-[name-with-digits]
Ho bisogno di ordinare in base alle seguenti regole: decrescente per parte centrale, poi per nome, in ordine naturale (cioè foobar10> foobar2) . Non conosco il valore del prefisso, ma conosco il separatore (trattino).
quindi il mio primo tentativo, naturalmente:
filelist | Sort-Object -property @{Expression=`
{$_.FullName.SubString($_.FullName.IndexOf("-")+1)}}
Questo ha un problema che il suffisso colpisce ordine (ignorare-aaa-1ignore-wname) è ordinata prima di ignorare-aaa-2ignore-aname), in modo da:
$filelist | Sort-Object -property @{Expression=`
{$_.FullName.SubString($_.FullName.IndexOf("-")+1,`
$_.FullName.SubString($_.FullName.IndexOf("-")+1).IndexOf("-"))}}
Ok, questo si ordina a metà, ma già senza mezzi termini. Se devo aggiungere un tipo naturale, sarebbe anche peggio. Qual è il modo più elegante di farlo?
"$ part1, $ part2, $ part2" dovrebbe essere "$ part1, $ part2, $ part3" grazie! – DennyRolling
Sì, l'ho notato anche io. Fisso. –