我有以下内容:
$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/