2012-07-05 39 views
7

我有一個包含目錄編號的目錄: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 - 我會怎麼做呢?

回答

15

我認爲你需要改變第一線如下:

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

然後,您可以創建以數字順序的下一個目錄是這樣的:

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