В Powershell я называю [io.path] :: GetExtension (..) следующим образом:
...| Select-Object {[io.path]::GetExtension($_)}
и я получаю следующий вывод:
[io.path]::GetExtension($_)
---------------------------
.dll
.dll
.dll
.dll
.dll
.dll
.dll
.dll
.dll
.dll
(Обратите внимание, что некоторые входы не имеют расширения, поэтому их вывод пуст)
И передача этого "Get-Member" дает:
TypeName: Selected.System.String
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
[io.path]::GetExtension($_) NoteProperty System.String [io.path]::GetExtension($_)=
Однако я хочу System.String , а не Selected.System.String, , как я хочу для Group-Object, и я (по-видимому) не могу сгруппировать Selected.System. Строка, поскольку она не реализует IComparable.
Вызов ".ToString ()" не выдает ошибку, но не преобразует ее в строку.
Как я могу создать строку или преобразовать вывод в строку?