Question Demande explication d'une syntaxe

Plus d'informations
il y a 5 ans 4 semaines #20670 par rocketter
Bonjour,

Souhaitant connaitre la liste des valeurs que peut prendre la propriété HorizontalAlignment dans un document excel, je suis tombé sur cette syntaxe :

[Enum]::getvalues([Microsoft.Office.Interop.Excel.XLHAlign]) | select @{n=\"Name\";e={\"$_\"}},value__


La méthode statique ok, mais par contre juste après le pipe, je ne comprends pas, déjà d'où sort le @{} ? et que signifie le value__ ? en fait à peu près tout ce qu'il y a après le pipe m'interloque lol.

Merci de votre aide.

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

Plus d'informations
il y a 5 ans 4 semaines #20677 par Laurent Dardenne
Salut,
rocketter écrit:

je ne comprends pas, déjà d'où sort le @{} ?

C'est une hashtable qui permet de déclarer un propriété calculée, cf. Get-Help Select
rocketter écrit:

que signifie le value__ ?

Il s'agit de la valeur d'un 'champ' d'énumération :
[code:1]add-type -AssemblyName Microsoft.Office.Interop.Excel
$T=[Enum]::getvalues([Microsoft.Office.Interop.Excel.XLHAlign])

$T[0].GetType()
# IsPublic IsSerial Name BaseType
#

----
# True True XlHAlign System.Enum

#ou $T[0].tostring()
$T[0]
#xlHAlignGeneral

$T[0].value__
1
$T[0]|gm
#... [/code:1]
Une valeur d'énumération c'est un nom et une valeur :
[code:1]
[Microsoft.Office.Interop.Excel.XLHAlign]::«»xlHAlignGeneral
#xlHAlignGeneral
[Microsoft.Office.Interop.Excel.XLHAlign]::«»xlHAlignGeneral.value__
#1


[Microsoft.Office.Interop.Excel.XLHAlign]::«»xlHAlignGeneral -as [int]
#1
[Microsoft.Office.Interop.Excel.XLHAlign]::«»xlHAlignGeneral.value__ -as [Microsoft.Office.Interop.Excel.XLHAlign]
xlHAlignGeneral
[/code:1]
On peut donc passer en paramètre soit un entier soit une chaîne :
[code:1]
$old=$ErrorActionPreference
$ErrorActionPreference=0
$ErrorActionPreference
#SilentlyContinue
$ErrorActionPreference=$old
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 5 ans 4 semaines #20681 par rocketter
Merci Laurent, donc le hashtable c'est un tableau associatif, dans lequel on peut déclarer des propriétés calculées. Ok je viens de voir ça dans l'aide, j'ai compris.

Et donc value__ n'est utilisée que dans le cas où l'on souhaite connaitre la valeur d'une énumération ?

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

Plus d'informations
il y a 5 ans 4 semaines #20683 par Laurent Dardenne
rocketter écrit:

Merci Laurent, donc le hashtable c'est un tableau associatif, dans lequel on peut déclarer des propriétés calculées.

Oui si le cmdlet ou la fonction est codée pour.
rocketter écrit:

Et donc value__ n'est utilisée que dans le cas où l'on souhaite connaitre la valeur d'une énumération ?

Ici oui, mais d'autres classes peuvent déclarer un nom de propriété identique.

Tutoriels PowerShell

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

Plus d'informations
il y a 5 ans 4 semaines #20689 par rocketter

Ici oui, mais d'autres classes peuvent déclarer un nom de propriété identique


Hum tu as un exemple ?

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

Plus d'informations
il y a 5 ans 4 semaines #20691 par Laurent Dardenne
rocketter écrit:

Hum tu as un exemple ?

En C# :
[code:1]
Add-Type @'
public class Test
{
public string value__;
}
'@
$p=new-object Test
$p.value__='Test'
$P
#value__
#
#Test
[/code:1]

Tutoriels PowerShell

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

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