Das letzte Element der Pipeline in der Powershell abrufen

8

Das könnte komisch sein, aber bleib bei mir. Ich möchte nur das letzte Element eines Pipe-Ergebnisses erhalten, das einer Variabel zugewiesen werden soll. Ich weiß natürlich, wie ich das in "normalem" Code machen würde, aber da dies ein One-Liner sein muss.

Genauer gesagt bin ich daran interessiert, die Dateierweiterung zu erhalten, wenn ich das Ergebnis von einer FTP-Anfrage ListDirectoryDetails bekomme.

Da dies innerhalb einer String-Erweiterung gemacht wird, kann ich den richtigen Code nicht herausfinden.

Momentan bekomme ich die letzten 3 hars, aber das ist echt eklig.

%Vor%

Meine Idee war ähnlich wie

%Vor%

Das heißt, über alles iterieren, aber nur herausnehmen, wo das Element, das ich sehe, das letzte des Eingabe-Arrays ist.

Was vermisse ich?

    
dozacinc 28.12.2010, 13:55
quelle

2 Antworten

16

Einige Möglichkeiten, dies zu tun:

%Vor%     
Roman Kuzmin 28.12.2010 16:49
quelle
9

Im Allgemeinen wird das letzte Element in der Pipeline mit Select -Last 1 erstellt, wie oben von Roman vorgeschlagen. Ein alternativer und einfacherer Weg, dies zu tun, wenn die Eingabe ein einfaches Array ist, ist das Array-Slicing, z. B.:

%Vor%

Wollten Sie die Dateierweiterung oder den Basisnamen erhalten? Weil es scheint, dass die Eigenschaft Type bereits die Erweiterung für den Dateinamen enthält.

    
Keith Hill 30.12.2010 18:55
quelle

Tags und Links