Dies könnte seltsam sein, aber bleib bei mir. Ich möchte nur das letzte Element eines Pipe-Ergebnisses erhalten, das einer Variable zugewiesen werden soll. Ich weiß natürlich, wie ich das im "normalen" Code machen würde, aber da muss das ein Einzeiler sein.Holen Sie das letzte Element der Pipeline in Powershell
Genauer gesagt, ich bin daran interessiert, die Dateierweiterung zu bekommen, wenn Sie das Ergebnis von einer FTP-Anfrage erhalten ListDirectoryDetails
.
Da dies innerhalb einer String-Erweiterung erfolgt, kann ich den richtigen Code nicht herausfinden.
Momentan bekomme ich die letzten 3 hars, aber das ist echt eklig.
New-Object PSObject -Property @{
LastWriteTime = [DateTime]::ParseExact($tempDate, "MMM dd HH:mm",[System.Globalization.CultureInfo]::InvariantCulture)
Type = $(if([int]$tempSize -eq 0) { "Directory" } else { $tempName.SubString($tempName.length-3,3) })
Name = $tempName
Size = [int]$tempSize
}
Meine Idee etwas tat, ähnlich wie
$tempName.Split(".") | ? {$_ -eq $input[$input.Length-1]}
das heißt, laufen, sondern nur herausnehmen, wo das Element an suche ich die letzte der ist Eingabe-Array.
Was fehlt mir?