2012-10-16 55 views
0

在我的PowerShell腳本,我創建與NoteProperties自定義對象:PowerShell的 - 可設置NoteProperty

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

但隨後在後面的代碼,我需要做的:

$foo.Something = 10 

在那行,我收到錯誤消息

在此對象上找不到'屬性'屬性;確保它存在並可設置。 在... + CategoryInfo:InvalidOperation:(CoreMajor:字符串)[],RuntimeException的 + FullyQualifiedErrorId:PropertyNotFound

所以我猜NoteProperty應該是可設置的,因爲文檔說一個靜態值。但是,如何編輯/更新屬性?我究竟做錯了什麼?

+1

2條評論。 1)我不能重現你的問題,屬性'Something'存在並且可以設置。 2)推測在'-value [int] dataRow [「Field」]'中有一個錯誤。你應該在括號中使用參數,否則整個參數被視爲一個字符串'[int] dataRow [Field]',即它不像你期望的那樣被計算。 –

回答

1

改變這一行

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

與此

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

因爲語法錯誤的,物業的東西從來沒有在第一時間創建。你應該得到一個錯誤,除非你的$ErrorActionPreference被設置爲SilentlyContinue(但你不應該得到第二個錯誤消息,我猜)。