You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PowerShell中的对象字符串转换为实际对象?

将字符串形式的PowerShell对象转换为真实对象

可以实现你需要的功能,以下是两种常用的实现方式:

方法一:使用Invoke-Expression(简单直接)

@{LOCAL='hello'}本身就是PowerShell的哈希表字面量语法,通过Invoke-Expression可以直接执行该字符串,生成对应的真实对象:

$str = "@{LOCAL='hello'}"
$test = Invoke-Expression $str
$test

执行后$test会成为一个哈希表对象,你可以直接通过$test.LOCAL获取值hello。

注意:Invoke-Expression会执行字符串中的任意PowerShell代码,如果字符串来源不可信,存在安全风险,需谨慎使用。

方法二:手动解析字符串(更安全)

如果字符串来源不确定,不想执行未知代码,可以手动解析字符串结构来构建对象,适用于简单的哈希表格式:

$str = "@{LOCAL='hello'}"
# 去除字符串首尾的@{和}
$cleanedStr = $str -replace '^@\{|\}$', ''
# 拆分键值对(支持多键值对用逗号分隔的情况)
$keyValuePairs = $cleanedStr -split '\s*,\s*'

$test = @{}
foreach ($pair in $keyValuePairs) {
    # 拆分键和值
    $key, $value = $pair -split '\s*=\s*', 2
    # 去除值两端的单引号
    $value = $value -replace '^''|''$', ''
    $test[$key] = $value
}

$test

这种方法只处理指定格式的字符串,避免了执行未知代码的风险,但仅适用于结构简单的哈希表字符串。

内容的提问来源于stack exchange,提问作者Rod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 12:02:39