$sample = @"
name,path,type
test1, \\server1\path1\test1.txt, 1
test2, \\server1\path1\test2.txt, 1
test3, \\server1\path2\test3.txt, 2
test4, \\server1\path1\test4.txt, 2
test5, \\server1\path3\test1.txt, 3
"@
$s = $sample | ConvertFrom-Csv
$g = $s | Group-Object -Property type
# $g[0].Group.GetType() reports as Collection`1
$t = $g[0].Group | Select -ExpandProperty Path
# $t.GetType() reports as Name=Object[], BaseType=System.Array
$t
# reports:
# \\server1\path1\test1.txt
# \\server1\path1\test2.txt
$t | Select *
# reports:
# Length
# ------
# 25
# 25
Я столкнулся с проблемой в одном из моих сценариев, который мне удалось воспроизвести с помощью предыдущего кода. У меня есть массив из Import-Csv, который включает в себя несколько путей UNC. Я группирую эти пути на основе разных критериев CSV-атрибутов, а затем пытаюсь использовать результирующий объект коллекции .Group, чтобы выполнить больше работы с этой группой. Моя проблема в том, что, если я пытаюсь что-то сделать с этим объектом, кроме как просто передать его на консоль, объект сообщает как значения, а не сами значения.
Например: $ t |Converto-Html -Fragment
Может кто-нибудь объяснить, что происходит, когда длины излучаются в отличие от значений, и, в конечном счете, как это исправить, чтобы получить значения вместо длин с помощью Group-Object, задействованных свойств группы? ТИА