gpt4 book ai didi

powershell - Invoke-WebRequest - 属性显示为具有值,但以某种方式访问​​时为空

转载 作者:行者123 更新时间:2023-12-03 14:33:35 24 4
gpt4 key购买 nike

我正在使用以下命令从简单的 linux 打印设备上的 Web 管理界面上的 html 输入字段中提取值。

$get = Invoke-WebRequest -Uri ("http://" + $station + ":8080/cgi-bin/admin?page=pedi.sh&hash=" + $hash) -Method "GET

其中一个输入字段是一个复选框,我需要能够检查它是否被选中。在这种情况下,复选框被命名为“协议(protocol)”并被选中。
$get.ParsedHtml.getElementsByName("Protocol") | Select checked

checked
True



如果我尝试使用以下命令获取值,它不会返回任何内容。
($get.ParsedHtml.getElementsByName("Protocol")).checked

但如果我这样做,我会得到值(value)......
($get.ParsedHtml.getElementsByName("Protocol") | Select checked).checked

我想知道为什么我会看到这种行为,这正常吗?

我正在运行 Windows 8 RTM、PowerShell 3.0。如果您需要更多信息,请告诉我。

最佳答案

我转载了你的问题。要获取选中属性(或任何其他属性)的值,我必须强制返回对象为数组,如下所示:

@($get.ParsedHtml.getElementsByName("Protocol"))[0].checked

或者,由于 Powershell 3.0 的新属性枚举功能:
@($get.ParsedHtml.getElementsByName("Protocol")).checked

因此,它似乎只在通过枚举从 getElementsByName 返回的集合请求值时提供值。也许有人可以插话并解释这种行为。我猜这与使用 com 对象的事实有关吗?

关于powershell - Invoke-WebRequest - 属性显示为具有值,但以某种方式访问​​时为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13035321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com