【问题标题】:Convert a stringified PSCustomObject back to a PSCustomObject将字符串化的 PSCustomObject 转换回 PSCustomObject
【发布时间】:2020-10-29 00:24:40
【问题描述】:

如果我创建一个像这样的简单对象

$myObject = [PSCustomObject]@{
Toto     = 'Kevin'
Language = 'Powershell'
State    = 'Texas'
ff       =  'kaka'}

然后我使用这样的表达式将其转换为字符串

$stringObject = "$myObject"

我需要将 $stringObject 转换回 PSCustomObject 以便我可以访问 $object.Toto $object.State 之类的属性...

但我无法使用 ConvertFrom-String 让它工作。

【问题讨论】:

  • 如果您无法修复 choco 中的故障,那么您可能需要解析字符串并构建一个新对象。您可以拆分字符串并通过将每个部分添加到新的哈希表并在转换整个属性列表时将其转换为 PSCustomObject 来对每个部分进行操作。这很丑,寿。 [叹息...]
  • 是的,可能的,但我正在寻找一种更干净的方法来做到这一点
  • 天真的方法[PSCustomObject]( Invoke-Expression ($stringObject -replace "\=", "='" -replace "\;", "';" -replace "\}", "'}"))
  • 谢谢JosefZ,这行得通,我想知道为什么没有简单的方法来进行这种转换!

标签: powershell powershell-4.0


【解决方案1】:
[PSCustomObject]( Invoke-Expression ($stringObject -replace "\=", "='" -replace "\;", "';" -replace "\}", "'}"))

为我工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-03
    • 2021-02-25
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多