在PowerShell中,你可以使用[xml]来表示[System.Xml.XmlDocument]。你知道我在哪里可以找到这些类型加速器的列表吗?这些加速器是特定于PowerShell还是.NET的?
yrefmtwq1#
自从这个问题在四年前被提出并回答以来,PowerShell一直在不断发展。@KeithHill的简洁答案不幸地不再起作用。我做了一点挖掘,发现必需的类只是暴露得少了一点。从好的方面来说,类型加速器的列表现在可能只显示这一行代码...
[psobject].assembly.gettype("System.Management.Automation.TypeAccelerators")::Get
.归因于Jaykul在这个Connect post.以下是部分输出:
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更新
从PowerShell Community Extensions(PSCX)版本3.1.0开始,您现在可以使用类型加速器来列出所有类型加速器,只需调用以下内容:
[accelerators]::get
m1m5dgzv2#
最后的方法是按照Oisin在excellent blog post中所演示的来做:
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 ...
请注意,你必须将新的'accelerators'加速器添加到字典中,因为TypeAccelerators类型不是公共的。你可以用.NET Reflector和大量的空闲时间做很多令人惊讶的事情。
iaqfqrcu3#
请参阅this blog post中标题为 * 类型名称别名 * 的部分。我相信这是别名的完整列表。
**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[]
bd1hkmkf4#
@Noldorin有一个很好的列表,列出了一些类型加速器。PowerShell还允许您使用类型文本来强制转换对象、调用静态方法、访问静态属性、反射以及您可能对System.Type对象的示例执行的任何其他操作。为了使用类型字面量,您只需将类(或结构或枚举)的全名(命名空间和类名)(用句点分隔命名空间和类名)括在括号中,如:
[System.Net.NetworkInformation.IPStatus]
PowerShell还将在尝试解析名称时提供前导“System.”,因此如果您正在使用System* 命名空间中的内容,则不需要显式使用该名称。
[Net.NetworkInformation.IPStatus]
Oisin Grehan (a PowerShell MVP) also has a blog post about creating your own type accelerators。
siv3szwd5#
以下是一个更完整的列表:
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
5条答案
按热度按时间yrefmtwq1#
自从这个问题在四年前被提出并回答以来,PowerShell一直在不断发展。@KeithHill的简洁答案不幸地不再起作用。我做了一点挖掘,发现必需的类只是暴露得少了一点。从好的方面来说,类型加速器的列表现在可能只显示这一行代码...
.归因于Jaykul在这个Connect post.
以下是部分输出:
2014.03.15更新
从PowerShell Community Extensions(PSCX)版本3.1.0开始,您现在可以使用类型加速器来列出所有类型加速器,只需调用以下内容:
m1m5dgzv2#
最后的方法是按照Oisin在excellent blog post中所演示的来做:
请注意,你必须将新的'accelerators'加速器添加到字典中,因为TypeAccelerators类型不是公共的。你可以用.NET Reflector和大量的空闲时间做很多令人惊讶的事情。
iaqfqrcu3#
请参阅this blog post中标题为 * 类型名称别名 * 的部分。我相信这是别名的完整列表。
bd1hkmkf4#
@Noldorin有一个很好的列表,列出了一些类型加速器。
PowerShell还允许您使用类型文本来强制转换对象、调用静态方法、访问静态属性、反射以及您可能对System.Type对象的示例执行的任何其他操作。
为了使用类型字面量,您只需将类(或结构或枚举)的全名(命名空间和类名)(用句点分隔命名空间和类名)括在括号中,如:
PowerShell还将在尝试解析名称时提供前导“System.”,因此如果您正在使用System* 命名空间中的内容,则不需要显式使用该名称。
Oisin Grehan (a PowerShell MVP) also has a blog post about creating your own type accelerators。
siv3szwd5#
以下是一个更完整的列表: