Où puis-je trouver une liste de Powershell.NET Type accélérateurs?

dans PowerShell, vous pouvez utiliser [xml] pour signifier [System.XML.XmlDocument]. Savez-vous où je peux trouver une liste de ces types d'accélérateurs?

Sont ces accélérateurs spécifiques à PowerShell ou .NET?

17
demandé sur Tyson Gilberstad 2009-07-17 23:47:26

5 réponses

Voir la section intitulée Saisissez Le Nom De L'Aliasce post. Je crois que c'est une liste complète de l'alias.

PowerShell Type Alias   Corresponding .NET Type
[int]                   System.Int32
[int[]]                 System.Int32[]
[long]                  System.Int64
[long[]]                System.Int64[]
[string]                System.String
[string[]]              System.String[]
[char]                  System.Char
[char[]]                System.Char[]
[bool]                  System.Boolean
[bool[]]                System.Boolean[]
[byte]                  System.Byte
[byte[]]                System.Byte[]
[double]                System.Double
[double[]]              System.Double[]
[decimal]               System.Decimal
[decimal[]]             System.Decimal[]
[float]                 System.Single
[single]                System.Single
[regex]                 System.Text.RegularExpression.Regex
[array]                 System.Array
[xml]                   System.Xml.XmlDocument
[scriptblock]           System.Management.Automation.ScriptBlock
[switch]                System.Management.Automation.SwitchParameter
[hashtable]             System.Collections.Hashtable
[psobject]              System.Management.Automation.PSObject
[type]                  System.Type
[type[]]                System.Type[]
7
répondu Noldorin 2009-07-17 20:08:33

Le chemin définitif est de faire ce que Oisin démontre dans ce excellent billet de blog:

PS> $acceleratorsType = [type]::gettype("System.Management.Automation.TypeAccelerators")
PS> $acceleratorsType

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
False    False    TypeAccelerators                         System.Object


PS> $acceleratorsType::Add("accelerators", $acceleratorsType)
PS> [accelerators]::Get

Key                                                         Value
---                                                         -----
int                                                         System.Int32
...

notez que vous devez ajouter le nouveau accélérateur' accelerators ' au dictionnaire parce que le type TypeAccelerators n'est pas public. Incroyable ce que vous pouvez faire avec .net réflecteur et beaucoup de temps libre. - ) You rock Oisin!

12
répondu 2009-07-18 19:59:23

depuis que cette question a été posée et a reçu une réponse il y a quatre ans, PowerShell a continué d'évoluer. La réponse concise de @KeithHill ne fonctionne malheureusement plus. J'ai creusé un peu et j'ai trouvé que la classe requise est juste un peu moins exposée. Du côté positif, la liste des accélérateurs de type peut maintenant être affichée avec juste ceci ligne de code...

[psobject].assembly.gettype("System.Management.Automation.TypeAccelerators")::Get

... attribué à Jaykul dans ce se Connecter post.

Voici une partielle sortie:

Key                    Value
---                    -----
Alias                  System.Management.Automation.AliasAttribute
AllowEmptyCollection   System.Management.Automation.AllowEmptyCollectionAttribute
AllowEmptyString       System.Management.Automation.AllowEmptyStringAttribute
AllowNull              System.Management.Automation.AllowNullAttribute
array                  System.Array
bool                   System.Boolean
byte                   System.Byte
char                   System.Char
CmdletBinding          System.Management.Automation.CmdletBindingAttribute
datetime               System.DateTime
decimal                System.Decimal
adsi                   System.DirectoryServices.DirectoryEntry
adsisearcher           System.DirectoryServices.DirectorySearcher
double                 System.Double
float                  System.Single
single                 System.Single
guid                   System.Guid
hashtable              System.Collections.Hashtable
int                    System.Int32
. . .

2014.03.15 mise à Jour

PowerShell Communauté Extensions (PSCX) version 3.1.0, vous pouvez maintenant utiliser un accélérateur de type pour lister tous les accélérateurs de type et juste invoquer ceci:

[accelerators]::get
12
répondu Michael Sorens 2014-03-15 23:09:18

@ Noldorin a une bonne liste de certains des accélérateurs de Type, avec certains.

PowerShell vous permet également d'utiliser des caractères littéraux pour lancer des objets, appeler des méthodes statiques, accéder à des propriétés statiques, réfléchir, et tout ce que vous pourriez faire avec une instance d'un système.Type d'objet.

pour utiliser un type littéral, vous n'avez qu'à inclure le nom complet (namespace et class name) de la classe (ou struct ou enum) (avec une période séparant le namespace et le nom de la classe) entre crochets comme ceci:

[System.Net.NetworkInformation.IPStatus]

PowerShell fournira également un système de pointe."dans sa tentative de résoudre le nom, de sorte que vous n'avez pas besoin d'utiliser explicitement que si vous utilisez quelque chose dans un namespace System*.

[Net.NetworkInformation.IPStatus]

Oisin Grehan (un MVP PowerShell) a aussi un billet de blog sur la création de votre propre type d'accélérateurs.

3
répondu Steven Murawski 2017-05-23 12:34:47

Voici une liste plus complète:

Key                   Value
---                   -----
adsi                  System.DirectoryServices.DirectoryEntry
adsisearcher          System.DirectoryServices.DirectorySearcher
array                 System.Array
bigint                System.Numerics.BigInteger
bool                  System.Boolean
byte                  System.Byte
char                  System.Char
cimclass              Microsoft.Management.Infrastructure.CimClass
cimconverter          Microsoft.Management.Infrastructure.CimConverter
ciminstance           Microsoft.Management.Infrastructure.CimInstance
cimtype               Microsoft.Management.Infrastructure.CimType
cultureinfo           System.Globalization.CultureInfo
datetime              System.DateTime
decimal               System.Decimal
double                System.Double
float                 System.Single
guid                  System.Guid
hashtable             System.Collections.Hashtable
initialsessionstate   System.Management.Automation.Runspaces.InitialSessionState
int                   System.Int32
int16                 System.Int16
int32                 System.Int32
int64                 System.Int64
ipaddress             System.Net.IPAddress
long                  System.Int64
mailaddress           System.Net.Mail.MailAddress
powershell            System.Management.Automation.PowerShell
psaliasproperty       System.Management.Automation.PSAliasProperty
pscredential          System.Management.Automation.PSCredential
pscustomobject        System.Management.Automation.PSObject
pslistmodifier        System.Management.Automation.PSListModifier
psmoduleinfo          System.Management.Automation.PSModuleInfo
psnoteproperty        System.Management.Automation.PSNoteProperty
psobject              System.Management.Automation.PSObject
psprimitivedictionary System.Management.Automation.PSPrimitiveDictionary
psscriptmethod        System.Management.Automation.PSScriptMethod
psscriptproperty      System.Management.Automation.PSScriptProperty
psvariable            System.Management.Automation.PSVariable
psvariableproperty    System.Management.Automation.PSVariableProperty
ref                   System.Management.Automation.PSReference
regex                 System.Text.RegularExpressions.Regex
runspace              System.Management.Automation.Runspaces.Runspace
runspacefactory       System.Management.Automation.Runspaces.RunspaceFactory
sbyte                 System.SByte
scriptblock           System.Management.Automation.ScriptBlock
securestring          System.Security.SecureString
single                System.Single
string                System.String
switch                System.Management.Automation.SwitchParameter
timespan              System.TimeSpan
type                  System.Type
uint16                System.UInt16
uint32                System.UInt32
uint64                System.UInt64
uri                   System.Uri
version               System.Version
void                  System.Void
wmi                   System.Management.ManagementObject
wmiclass              System.Management.ManagementClass
wmisearcher           System.Management.ManagementObjectSearcher
xml                   System.Xml.XmlDocument
1
répondu Saintali 2016-04-11 19:20:13