powershell - 需要来自 Invoke-WebRequest 输出的特定字符串行

标签 powershell

我有以下内容:

$WebContent = Invoke-WebRequest -Uri "URLHERE/$PCNAME" -UseDefaultCredential |
              Select-Object -ExpandProperty Content

它输出完美:

键1:sfsdfsdfsfdsfsdsfs
键 2:标清:34:标清:34:标清:34
版本:4
时间戳:2018 年 4 月 13 日下午 4:00:11

但是我需要能够将 Key1 和 Key2 的内容放入一个变量中,没有空格,并适应每个键长度变化的可能性。

我试图使用 Substring($len - 83,14)得到它的长度并解析出 key 的确切位置,但由于某种原因,它们的长度正在改变,并且一些已经切断了给出不正确输出的 key 。我可能需要获取整行,然后将“:”和“”之后的所有内容放入变量中。

有任何想法吗?

最佳答案

假设您得到的响应是文本,而不是结构化对象,您可以执行以下操作:

$data = $WebContent -replace ': ', '=' |
        Out-String |
        ConvertFrom-StringData

以上将用 = 替换冒号后跟空格。并将所有字符合并为一个字符串,以便 ConvertFrom-StringData可以将键/值对列表转换为哈希表。然后你可以像这样为单个变量赋值:
$key = $data['Key1']

或者按原样使用哈希表。

关于powershell - 需要来自 Invoke-WebRequest 输出的特定字符串行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51427687/

相关文章:

powershell - 将 Dos 命令转换为 Powershell 命令

sql-server - 如何在Sql服务器中转义 "&"符号

powershell - 有没有一种方法可以存储要在Powershell中重复使用的消息框设置?

powershell - 奇怪的 Powershell "interactive"行为

具有多个 session 的 Powershell 独立脚本

powershell - 在目录中搜索文件,如果找不到则向上迭代父目录

powershell - 无法在 Azure Runbook 上运行 Az 命令

powershell - PowerShell无法识别基本命令?术语 'get'无法识别为cmdlet的名称(错误)

powershell - 如何从 Powershell 脚本启动 Robocopy

sql - 从 Powershell 执行存储过程