2012-07-05 15 views
7

ho una directory contenente directory numerate:PowerShell Sort con l'ordinamento personalizzato Espressione

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

ho bisogno di creare directory successiva numericamente. Per quali Attualmente sto facendo

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

Questo, naturalmente, non riesce una volta si arriva a 10 che da regole di ordinamento segue dopo 1 non 9. Ho bisogno l'espressione di ordinamento per essere effettivamente [int]$_.Name - come farei questo?

risposta

15

penso che è necessario per cambiare la situazione prima riga come segue:

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

Quindi, è possibile creare la directory successiva in ordine numerico in questo modo:

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