8

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

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- 我将如何做到这一点?

4

1 回答 1

19

我认为您需要将第一行更改如下:

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

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

mkdir ([int]$lastArchive.Name + 1).ToString()
于 2012-07-05T23:32:16.310 回答