Пожалуйста, не публикуйте код, который вы изготовили или набрали из памяти.Вы получаете вывод как
System.Collections.Hashtable[0]
System.Collections.Hashtable[1]
System.Collections.Hashtable[2]
, потому что в вашем фактическом коде есть выражение
Write-Host "$id[$i]"
вместо строки
Write-Host $id[$i]
ваш пример кода претендует на то, чтобы иметь.
PowerShell выполняет только простое расширение переменных внутри строк в двойных кавычках.Он не расширяет более сложные выражения (например, индекс или доступ к свойствам), как можно было бы ожидать.Выражение "$id[$i]"
расширяется до строкового представления переменной $id
(которая в данном случае является именем класса объекта: "System.Collections.Hashtable"), за которым следует открывающая квадратная скобка, значениепеременная $i
и закрывающая квадратная скобка.