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?
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[]
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!
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
@ 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]
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