НО эта техника портит PSCustomObject таким образом, что блокирует мой дальнейший рабочий процесс.
Проблему можно воспроизвести следующим образом:
Код: Выделить всё
$object = [pscustomobject]@{
Text = "This is a string"
}
Код: Выделить всё
$object | Select-Object * | Get-Member
Это что выдаст мой следующий командлет.
Код: Выделить всё
$WhatHappensToText = $object | Select-Object @{Name='Text'; Expression={$_.Text}}
$WhatHappensToText | Get-Member
Экспорт в Clixml и повторный импорт не выполняются. то же самое
Код: Выделить всё
$WhatHappensToText | ConvertTo-Json | ConvertFrom-Json | Get-Member
Код: Выделить всё
$object2 = $object | Select-Object *
$object2 | foreach-object {$_ | Add-Member -MemberType NoteProperty -Name Text2 -Value $_.Text}
$object2 | Get-Member
Почему @{Name='Name'; Техника Expression = {'Expression'}}, добавляющая System.String к определению, а не строку, как в сценарии добавления элемента?
Есть ли способ сделать @ {Имя = 'Имя'; Метод Expression = {'Expression'}} добавляет строку, а не System.String?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ring-types