Question
Demande explication d'une syntaxe
- rocketter
- Auteur du sujet
- Hors Ligne
- Membre senior
- Messages : 46
- Remerciements reçus 0
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
rocketter écrit:
C'est une hashtable qui permet de déclarer un propriété calculée, cf. Get-Help Selectje ne comprends pas, déjà d'où sort le @{} ?
rocketter écrit:
Il s'agit de la valeur d'un 'champ' d'énumération :que signifie le value__ ?
[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.
- rocketter
- Auteur du sujet
- Hors Ligne
- Membre senior
- Messages : 46
- Remerciements reçus 0
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Oui si le cmdlet ou la fonction est codée pour.Merci Laurent, donc le hashtable c'est un tableau associatif, dans lequel on peut déclarer des propriétés calculées.
rocketter écrit:
Ici oui, mais d'autres classes peuvent déclarer un nom de propriété identique.Et donc value__ n'est utilisée que dans le cas où l'on souhaite connaitre la valeur d'une énumération ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- rocketter
- Auteur du sujet
- Hors Ligne
- Membre senior
- Messages : 46
- Remerciements reçus 0
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
En C# :Hum tu as un exemple ?
[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.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Demande explication d'une syntaxe