Objetos personalizados de PowerShell: cómo acceder a la nota de noweproperty del resultado recopilado
-
26-10-2019 - |
Pregunta
Leer un artículo sobre objetos personalizados:
http://technet.microsoft.com/en-us/library/ff730946.aspx
Me pregunto por qué obtengo un resultado para la entrada individual: por ejemplo, $ objaverage.name
mientras que por $ colaverages.name no se ha retrasado nada. Aunque con Get-Member, ambos muestran el nombre [System.Object] Noteproperty
Esperaría devolver todos los nombres de mi resultado en $ colaverage.
Código del artículo: c: temp base.txt
Name,AtBats,Hits
Ken Myer,43,13
Pilar Ackerman,28,11
Jonathan Haas,37,17
Syed Abbas,41,20
Luisa Cazzaniga,22,6
Andrew Cencini,35,11
Baris Cetinok,19,4
Potencia Shell:
$colAverages = @()
$colStats =Import-Csv C:\Temp\base.txt
foreach ($objBatter in $colStats)
{
$objAverage = New-Object System.Object
$objAverage | Add-Member -type NoteProperty -name Name -value $objBatter.Name
$objAverage | Add-Member -type NoteProperty -name BattingAverage -value ("{0:N3}" -f ([int] $objBatter.Hits / $objBatter.AtBats))
$colAverages += $objAverage
}
$colAverages | Sort-Object BattingAverage -descending
Solución
Prueba $ colaverages [0] .Name
for ($i=0 ; $i -le $colAverages.Length ; $i++)
{
$colAverages[$i].name
}
O
foreach ($a in $colAverages)
{
$a.name
}
---------- EDITAR----------
PS C:\> $colAverages.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
PS C:\> $objAverage.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Oject
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow