2017-08-29 98 views
1

有困难订购物品......订单项目:A,B,AA,AB

我想处理文件,与该项目被上传到SharePoint以正确的顺序最终结果。

在我需要处理的数据(CSV)中,我有一个名为Version的列,这是一段限于两个字符的文本。第一个版本是A,范围为ZZ

一个正常的项目可能看起来像这样。这里有三个版本的项目1,我可以按版本列上的升序对它们进行排序。

A 
AA 
AB 
B 

当我需要的顺序:

Title: item 1 
Version: A 

Title: item 1 
Version: B 

Title: item 1 
Version: C 

问题

Title: item 2 
Version: A 

Title: item 2 
Version: B 

...... many versions later .... 

Title: item 2 
Version: AA 

Title: item 2 
Version: AB 

使用的 '版本' 升序排序表达式,这将按照以下顺序进行排序成为:

A 
B 
AA 
AB 

有关如何实现上述目标的任何想法?

+3

'排序 - 对象{$ _.Version.Length},版本' – PetSerAl

回答

6

左垫的空间,它会按字母排列顺序先A

$sortedByVersion = $items |Sort -Property {$_.Version.PadLeft(2,' ')} 

使用裸串下面是一个例子:

PS C:\> "a","b","c","aa","bb","cc"|Sort-Object 
a 
aa 
b 
bb 
c 
cc 
PS C:\> "a","b","c","aa","bb","cc"|Sort-Object {$_.PadLeft(2,' ')} 
a 
b 
c 
aa 
bb 
cc 
+0

优秀,总有一个简单的解决方案!谢谢。 – dhendry

+0

这是真棒数学:) –

相关问题