mercredi 30 novembre 2011

Enumérer les propriétés den PowerShell

Il y a peu, j'ai eu besoin d'obtenir l'énumération des propriétés d'un objet.
En mode interactif, il suffit de faire:
$myObject | Get-Member

Seulement voila, j'en avait besoin en runtime parce que je voulais énumérer les champs d'un DataRow.
Maintenant que je n'en ai plus besoin, j'ai trouvé une magnifique référence sur le net.

Voici l'article "Create A PowerShell Hash Table From A PowerShell Object" qui extrait les propriétés d'un objet et ses valeurs.
Une perle :-)

$myobject | Get-Member -MemberType Properties |
    ForEach {$hash=@{}} {
        $hash.($_.Name) = $myobject.($_.Name)
    } {$hash} 

A noter que l'opération inverse se code comme ceci:
$peeps = @{
  'Lead'='asmith';
  'Enterprise'='bjones';
  'Edge'='chumperdink';
  'Backend'='dwilford';
  'SED'='fhanns'
}            

$obj = New-Object -Type PSObject -Property $peeps

Source:

Aucun commentaire: