Question [Tutoriel] Les objets personnalisés sous PS

Plus d'informations
il y a 17 ans 6 mois #2796 par Laurent Dardenne
Voici un tutoriel sur
La création de membres d'objet synthétiques sous PowerShell
Si vous avez des remarques et/ou des questions n'hésitez pas.

A voir sur le sujet :
github.com/PowerShell/PowerShell/issues/11171

Message édité par: Laurent Dardenne, à: 12/04/20 12:23

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 1 mois #4124 par Laurent Dardenne
Pour info la gestion des membres sur une hashtable est légérement buggé, en V1 en tout cas :
[code:1]
L=1|Select
$L=$L|add-member -membertype Scriptproperty -name DataFile -value {\"Test\"} -SecondValue {Throw \"DataFile is a read only property.\"} -pass
$L.DataFile=\"T\"
#exception

#La gestion d'un ScriptProperty ne fonctionne pas
$ht = New-Object HashTable
$ht.Filed=\"value\"
add-member Scriptproperty DataFile -value {\"Test\"} -SecondValue {Throw \"DataFile is a read only property.\"} -input $ht
$ht.DataFile=\"T\"
#pas d'exception.
$ht.Keys
#Datafile est une clé et un membre, mais il est inacessible car la clé est prioritaire !
add-member NoteProperty isDefault ($true) -input $ht
$ht.isDefault
#$true
$ht.Keys

# pour corriger ce pb utiliser un membre de type scriptmethod ou noteproperty

#pb connu sur msconnect
$table = @{test=\"This is a test\";exam=\"this is an exam\";defense=\"defend your thesis\"}
Add-Member -in $table NoteProperty Quiz \"Surprise, hope you're ready!\"
$table.Quiz # It's not there! There is NO OUTPUT
Add-Member -in $table NoteProperty Quiz \"Surprise, hope you're ready!\"
$table.Quiz # This time it works ...

#pour ce dernier pb faire
$table= New-Object HashTable
$table.test=\"This is a test\"
$table.exam=\"this is an exam\"
$table.defense=\"defend your thesis\"
Add-Member -in $table NoteProperty Quiz \"Surprise, hope you're ready!\"
$table.Quiz # This time it works ...
Add-Member -in $table NoteProperty Quiz \"Surprise, hope you're ready!\"
$table.Quiz # This time it works ...
[/code:1]

[edit]
On doit utiliser l'accès suivant :
[code:1]$ht.psextended.datafile [/code:1]

Message édité par: Laurent Dardenne, à: 21/02/09 15:47<br><br>Message édité par: Laurent Dardenne, à: 25/04/10 15:38

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.048 secondes
Propulsé par Kunena