解析 Powershell 变量

2023-12-03

你们都给了我很大的帮助——让我首先这么说。

我从运行的函数中得到以下输出 - 数据存储在名为的变量中$response,从一个获得Invoke-RestMethod call.

@{ResourceType=UserStory; Id=202847; Name=Professional Lines: 2,800,000 Policy Aggregate Limit update}    

我如何将这些值解析为新变量,以便最终结果是

TP Id:202847 Professional Lines: 2,800,000 Policy Aggregate Limit update

你所展示的是字符串化的的形式自定义对象,它使用哈希表-like文本表示.

该自定义对象的定义如下所示:

# Construct a custom object with .ResourceType, .Id, and .Name properties.
$response = [pscustomobject] @{
  ResourceType = 'UserStory'
  Id = 202847
  Name = 'Professional Lines: 2,800,000 Policy Aggregate Limit update'
}

If you include this variable in an expandable string (interpolating string), you'll get the representation in your question[1] - note that you'll get the same representation if you pass the object to the Write-Host cmdlet[2], as well as even with default output formatting if [pscustomobject] instances are nested in property values:

# Note the enclosing "..."
PS> "$response"

@{ResourceType=UserStory; Id=202847; Name=Professional Lines: 2,800,000 Policy Aggregate Limit update}

# Custom object nested in a property value:
PS> [pscustomobject] @{ foo = [pscustomobject] @{ bar = 'baz' } }

foo
---
@{bar=baz}
 

请注意,如果没有包含"...",借助 PowerShell 的输出格式化系统,您将获得更好的表格表示形式。

PS> $response  # direct output of the object

ResourceType     Id Name
------------     -- ----
UserStory    202847 Professional Lines: 2,800,000 Policy Aggregate Limit update

假设$response实际上仍然是一个自定义对象,而不是一个它的字符串表示,你可以简单地访问自定义对象的属性来构建字符串, again 使用一个可扩展字符串:

PS> "TP Id:$($response.Id) $($response.Name)"
TP Id:202847 Professional Lines: 2,800,000 Policy Aggregate Limit update

使用时需要注意$(...)围绕属性参考 - 请参阅这个答案有关 PowerShell 字符串扩展规则的摘要。


An 替代方法是使用-f操作员,它使用类似于 .NET 的格式化字符串String.Format() method:

PS> 'TP ID:{0} {1}' -f $response.Id, $response.Name
TP ID:202847 Professional Lines: 2,800,000 Policy Aggregate Limit update

[1] You can also obtain this representation by calling .psobject.ToString() on a custom object; curiously, just .ToString() doesn't work, as of PowerShell Core 6.1.0; this surprising discrepancy is discussed in this GitHub issue.

[2] Do note that Write-Host's purpose is to provide for-display-only (to-host) output, which bypasses PowerShell's success output stream, and thereby the ability to capture or redirect its output - see this answer for more information.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解析 Powershell 变量 的相关文章

随机推荐

  • 将文本值输入到 div 中?

    假设我有这个文本框
  • IPv6 的示例数据?

    是否存在 IPv6 流量的示例数据集 例如Apache 日志还是流量分析日志 或者 是否有人有任何想法如何生成一个或 乐观地 现有工具来生成数据 理想情况下 我希望实际部署的示例地址与该范围内的地址数量和 或来自这些范围的预期流量成比例 即
  • 访问资源目录路径

    看起来 NSBundle mainBundle pathForResource name ofType png 对于 Images xcassets 资产目录内的资产 不返回任何内容 我也尝试过 NSBundle mainBundle pa
  • 雅虎 YQL RSS - 错误请求

    为了使用 jQuery 发出跨域 AJAX 请求 我尝试使用 YQL RSS select from rss where url https www top1000funds com feed most popular posts My c
  • C++中如何将字符串转换为char *?

    我怎样才能转换string in to char 我使用了以下方法 但它不起作用 在运行时它给我以下错误 运行时检查失败 3 变量 url 正在被使用而没有 正在初始化 尽管我已经将其初始化 如下面的代码所示 你能给我举个例子吗 char
  • 具有动态键的对象的 Apollo/GraphQL 字段类型

    假设我的 graphql 服务器想要以 JSON 形式获取以下数据 其中person3 and person5是一些 id persons person3 id person3 name Mike person5 id person5 na
  • JTable 基于隐藏列的排序

    我想排序JTable基于一个隐藏列的行 假设我有一个像这样的 JTable column1 column2 val1 val2 现在我又多了一个被隐藏的column3 我不想显示 当用户单击 Column2 时 它应该根据 Column3
  • 在 JavaScript 中创建特定时区的日期对象并将其转换为 UTC

    我的应用程序当前以以下格式存储特定事件的日期和时间 date 2022 05 06 time 00 00 12 00 AM 每个事件的时间还包含与其关联的时区 如果组织活动的人来自新加坡 那么时区将亚洲 新加坡 当我向与会者发送此活动的日历
  • 使用delphi以编程方式执行防病毒程序

    我编写了一个小应用程序来使用 indy 组件传输文件 现在我想在传输完成后启动防病毒程序来检查文件 下载完成后 如何执行客户端安装的防病毒程序 UPDATE下载文件时我需要实现类似于 Firefox 的功能 然后执行机器中安装的防病毒软件
  • 如何以编程方式设置拨号连接的“自动配置脚本”?

    我在 Internet 选项 gt 连接 中有一个拨号连接 我想以编程方式为其设置一个 自动配置脚本 连接设置之一 将其设置为 LAN 很容易 但我找不到有关将其设置为其他连接的任何信息 好的 我已经解决了 实际上 它以与存储 LAN 设置
  • 如何使用基于 JWT 的身份验证处理文件下载?

    我正在用 Angular 编写一个 Web 应用程序 其中身份验证由 JWT 令牌处理 这意味着每个请求都有一个包含所有必要信息的 身份验证 标头 这对于 REST 调用非常有效 但我不明白应该如何处理后端托管文件的下载链接 文件驻留在托管
  • 混合 JSON-LD CollectionPage 和 Schema.org 的微数据 `hasPart`

    下面的微数据标记工作得很好 Google 的结构化数据测试工具显示一个CollectionPage and WebSite WebPage作为孩子 span a href https springfield xxxx us Official
  • 如何在 C# 中使用 Delphi Dll(带 PChar 类型)

    下面是 Delphi DLL 代码 library Project2 uses SysUtils Classes R res function SimpleConv const s string string var i Integer b
  • PairGrid 与 Seaborn 中的 Hexbin 绘图

    我正在尝试在 Seaborn 网格中获取 hexbin 图 我有以下代码 Works in Jupyter with Python 2 Kernel matplotlib inline import seaborn as sns impor
  • 将图像图标从触摸位置动画到右上角?

    我正在开发 Android 在线购物应用程序 我必须应用一些动画 购物车图像显示在屏幕的右上角 屏幕上的项目列表中的每个项目都带有 添加到购物车 按钮 当用户按下此按钮时 我必须播放动画 我有一个固定图像 它应该从触摸位置动画到 购物车图像
  • 将 Jetty 8 升级到 Jetty 9

    我正在从 jetty 8 升级到 jetty 9 并且遇到了一些 API 中编译失败的问题 SslSelectChannelConnector 已被删除 从我可以看到 httpConfiguration 和 secureRequestCus
  • iText:单元格中的图像列表

    我想创建一个包含点列表的表格 我事先不知道我有多少个点 但如果它们溢出单元格 我希望它们换行 就像文本一样 我的代码是这样的 PdfPTable table new PdfPTable 1 table setTotalWidth new f
  • UIColor CMYK 和 Lab 值

    简单的问题 很可能复杂的答案 如何从 UIColor 对象获取 CMYK 和 Lab 值 如果有帮助的话 我知道其中的 RGB 值 我发现了有关获取 CMYK 值的信息 但我无法从中获取任何准确的值 尽管它无处不在 但我听说这不是一个很好的
  • Spring-Boot:如何设置 JDBC 池属性,例如最大连接数?

    Spring Boot 是一个非常棒的工具 但是当涉及到更高级的配置时 文档有点稀疏 如何设置数据库连接池的最大大小等属性 Spring Boot 支持tomcat jdbc HikariCP and Commons DBCP它们本身的配置
  • 解析 Powershell 变量

    你们都给了我很大的帮助 让我首先这么说 我从运行的函数中得到以下输出 数据存储在名为的变量中 response 从一个获得Invoke RestMethod call ResourceType UserStory Id 202847 Nam