Powershell按自定义排序表达式排序

时间:2012-07-05 23:06:52

标签: sorting powershell

我有一个包含编号目录的目录:

Archive
 |-1
 |-2
 |-3
 |-...

我需要以数字方式创建下一个目录。我目前正在做的事情

$lastArchive = ls .\Archive | sort Name | select -Last 1
$dirName = '1'
if($lastArchive) {
  $dirName = ([int]$lastArchive.Name)+1
}

当我们达到10时,这当然失败了,通过排序规则跟随1而不是9.我需要排序表达式实际上是[int]$_.Name - 我该怎么做?

1 个答案:

答案 0 :(得分:17)

我认为您需要更改第一行,如下所示:

$lastArchive = ls .\Archive | Sort-Object -property @{Expression={[int]$_.Name}} | Select-Object -Last 1

然后,您可以按照以下数字顺序创建下一个目录:

mkdir ([int]$lastArchive.Name + 1).ToString()