订购商品:A,B,AA,AB

时间:2017-08-29 10:55:18

标签: powershell

订购商品时遇到困难......

我正在尝试处理文件,最终结果是项目以正确的顺序上传到SharePoint。

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

正常项目可能如下所示。这里,第1项有三个版本,我可以按版本列的升序对它们进行排序。

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
AA
AB
B

当我需要订单时:

A
B
AA
AB

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

1 个答案:

答案 0 :(得分: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