È possibile specificare il tipo di una variabile prima a forzare il suo tipo, si chiama (dinamico) di colata (maggiori info in this PS Team blog article):
$string = "1654"
$integer = [int]$string
$string + 1
#outputs 16541
$integer + 1
#outputs 1655
Come esempio, il seguente frammento aggiunge, a ogni oggetto $fileList
, una proprietà IntVal
con il valore intero della proprietà Name
, quindi ordina $fileList
su questa nuova proprietà (default è crescente), prende l'ultimo (più alto IntVal
) il valore dell'oggetto IntVal
, lo incrementa e, infine, crea una cartella denominata dopo che è:
#for testing purposes
#$fileList = @([PSCustomObject]@{ Name = "11" }, [PSCustomObject]@{ Name = "2" }, [PSCustomObject]@{ Name = "1" })
#OR
#$fileList = New-Object -TypeName System.Collections.ArrayList
#$fileList.AddRange(@([PSCustomObject]@{ Name = "11" }, [PSCustomObject]@{ Name = "2" }, [PSCustomObject]@{ Name = "1" })) | Out-Null
$highest = $fileList |
Select-Object *, @{ n = "IntVal"; e = { [int]($_.Name) } } |
Sort-Object IntVal |
Select-Object -Last 1
$newName = $highest.IntVal + 1
New-Item $newName -ItemType Directory
Sort-Object IntVal
non è necessaria in modo da poter rimuovere , se si preferisce
Penso che OP voglia incrementare l'ultimo elemento – kekimian
E in che modo la mia risposta merita un downvote da parte tua?:) – sodawillow
solo perché "penso" come te – kekimian