首页 > 解决方案 > PowerShell 属性问题

问题描述

$History = $ServerRequest.$_.24hr_work

引用运算符错误后,该24hr_work部分出现缺少属性名称。

我已经尝试过$ServerRequest.$_.'24hr_work',甚至尝试过让一个对象指向它。

$24 = '24hr_work'

当我输入它时,我在 24 之后就出现了错误,所以我相信数字是问题所在,我只是找不到另一种写法。它与以数字开头的属性有关。

标签: powershell

解决方案


确实:要引用名称以数字( 0, 1, ... 9) 开头的属性,您必须:

  • 要么:在文字属性名称周围使用引号。

  • 或:使用变量间接提供属性名称。

展示:

$obj = [pscustomobject] @{ '1a' = '1a''s value' }

# !! BREAKS, because the property name starts with a digit.
$obj.1a

# OK: Quote the property name
$obj.'1a'
$obj."1a"

# OK: Access the property via  a *variable*
$propName = '1a'
$obj.$propName

这意味着通过包含该字符串的24hr_work变量访问属性应该可以工作,但是 [更新:因为被 OP 确认可以工作]。$24


推荐阅读