【问题标题】:Powershell - Settable NotePropertyPowershell - 可设置的 NoteProperty
【发布时间】:2012-10-16 03:40:49
【问题描述】:

在我的 PowerShell 脚本中,我正在使用 NoteProperties 创建一个自定义对象:

$foo = New-Object System.Object
$foo | Add-Member -type NoteProperty -name Something -value [int]dataRow["Field"]

但是在后面的代码中,我需要这样做:

$foo.Something = 10

在那一行,我收到错误消息

在此对象上找不到属性“某物”;确保它存在并且是可设置的。 在 ... + CategoryInfo : InvalidOperation: (CoreMajor:String) [], RuntimeException + FullyQualifiedErrorId : PropertyNotFound

所以我猜 NoteProperty 应该是可设置的,因为文档说的是静态值。但是,我该如何编辑/更新属性?我做错了什么?

【问题讨论】:

  • 2 条评论。 1) 我无法重现您的问题,Something 属性存在并且可以设置。 2) 估计-value [int]dataRow["Field"] 有错误。您应该使用括号中的参数,否则整个参数将被视为字符串[int]dataRow[Field],即不会按您的预期进行评估。

标签: powershell powershell-2.0


【解决方案1】:

改变这一行

$foo | Add-Member -type NoteProperty -name Something -value [int]dataRow["Field"]

有了这个

$foo | Add-Member -type NoteProperty -name Something -value ([int]$dataRow["Field"])

由于语法错误,Something 属性一开始就没有被创建。你应该得到一个错误,除非你的 $ErrorActionPreference 设置为 SilentlyContinue(但我猜你也不应该收到第二条错误消息)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 2011-09-24
    相关资源
    最近更新 更多