ise example comandos .net powershell types accelerator

.net - example - powershell windows 7



¿Dónde puedo encontrar una lista de aceleradores de tipo.NET de Powershell? (5)

@ Noldorin tiene una buena lista de algunos de los aceleradores de tipo, con algunos.

PowerShell también le permite usar tipos literales para lanzar objetos, llamar a métodos estáticos, acceder a propiedades estáticas, reflexionar y cualquier otra cosa que pueda hacer con una instancia de un objeto System.Type.

Para usar un literal de tipo, solo debe incluir el nombre completo (espacio de nombres y nombre de clase) de la clase (o estructura o enumeración) (con un punto que separa el espacio de nombres y el nombre de la clase) entre corchetes como:

[System.Net.NetworkInformation.IPStatus]

PowerShell también proporcionará un "Sistema" líder. en su intento de resolver el nombre, por lo que no necesita usarlo explícitamente si está usando algo en un espacio de nombres del Sistema *.

[Net.NetworkInformation.IPStatus]

Oisin Grehan (un MVP de PowerShell) también tiene una publicación en el blog sobre la creación de sus propios aceleradores de tipos .

En PowerShell puede usar [xml] para referirse a [System.Xml.XmlDocument]. ¿Sabes dónde puedo encontrar una lista de estos aceleradores de tipo?

¿Son estos aceleradores específicos de PowerShell o .NET?


Aquí hay una lista más completa:

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


Consulte la sección titulada Alias ​​de nombre de tipo en esta publicación de blog . Creo que esta es una lista completa de los 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[]


Desde que se hizo esta pregunta y se respondió hace cuatro años, PowerShell ha seguido evolucionando. La respuesta concisa de @KeithHill desafortunadamente ya no funciona. Hice un poco de investigación y descubrí que la clase requerida está un poco menos expuesta. En el lado positivo, la lista de aceleradores de tipo ahora se puede mostrar con solo una línea de código ...

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

... atribuido a Jaykul en esta publicación de Connect .

Aquí hay una salida parcial:

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 Actualización

A partir de la versión 3.1.0 de PowerShell Community Extensions (PSCX), ahora puede usar un acelerador de tipos para enumerar todos los aceleradores de tipos y simplemente invocar esto:

[accelerators]::get


La forma definitiva es hacer lo que Oisin demuestra en esta excelente publicación del 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 ...

Tenga en cuenta que debe agregar el nuevo acelerador de ''aceleradores'' al diccionario porque el tipo TypeAccelerators no es público. Es increíble lo que puedes hacer con .NET Reflector y mucho tiempo libre. :-) ¡Oisin rockea!