首页 > 解决方案 > powershell 不理解 trace 作为文本 ex 的一部分。$_.data-action-name

问题描述

我正在尝试自动单击 Internet Explorer,但是文档行中的名称有破折号。

如何让powershell明白破折号不是表达式?

我试过这个,但powershell不理解破折号:

$export = $ie.Document.getElementsByTagName('a') | where-object {$_.data-action-name -eq 'Csv'}
$export.click()

我需要单击 Csv 出现的位置:

<div class="action_group_contents">
   <a class="grid_async_export" data-ats-id="export-list-csv" data-action-name="Csv">CSV</a>
   <a class="grid_async_export" data-ats-id="export-list-xlsx" data-action-name="Xlsx">XLSX</a>
</div>

谢谢你的帮助!

标签: powershellinternet-explorerautomation

解决方案


当您有一个带有特殊字符的属性名称时,您可以在检索时简单地引用该属性名称。

$_.'data-action-name'

单引号和双引号的示例:

> $obj = [pscustomobject]@{'data-with-dash' = "data"; 'data@with@at' = "data2"}
> $obj

data-with-dash data@with@at
-------------- ------------
data           data2

> $obj.'data-with-dash'
data
> $obj."data@with@at"
data2

推荐阅读