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

Geo*_*uer 7 sorting powershell

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

Archive
 |-1
 |-2
 |-3
 |-...
Run Code Online (Sandbox Code Playgroud)

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

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

这当然是失败的,一旦我们达到10,通过排序规则跟随1而不是9.我需要排序表达式实际上是[int]$_.Name- 我将如何做到这一点?

Dav*_*vid 17

我想你需要改变第一行如下:

$lastArchive = ls .\Archive | 
               Sort-Object -property @{Expression={[int]$_.Name}} | 
               Select-Object -Last 1
Run Code Online (Sandbox Code Playgroud)

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

mkdir ([int]$lastArchive.Name + 1).ToString()
Run Code Online (Sandbox Code Playgroud)