2009-07-17 11 views
17

Trong PowerShell, bạn có thể sử dụng [xml] để có nghĩa là [System.Xml.XmlDocument]. Bạn có biết nơi tôi có thể tìm thấy một danh sách các máy gia tốc kiểu này không?Tôi có thể tìm danh sách các bộ tăng tốc loại Powershell .NET ở đâu?

Các máy gia tốc này có cụ thể cho PowerShell hoặc .NET không?

+2

chúng không nói đúng bí danh, nhưng không gian tên ngầm định.Câu hỏi hay. –

+3

Tôi đã thay thế việc sử dụng bí danh từ bằng các trình tăng tốc kiểu. Trong PowerShell, bí danh là một động vật khác hoàn toàn; chúng là các phím tắt cho lệnh, hàm và tập lệnh. –

+1

@Steven: Có thể là một cuộc gọi tốt; Mặc dù * Nhập bí danh tên * cũng là một thuật ngữ apt theo ý kiến ​​của tôi. – Noldorin

Trả lời

7

Xem phần có tiêu đề Bí danh tên loại trong this blog post. Tôi tin rằng đây là danh sách đầy đủ các bí danh.

 
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[] 
+0

[wmi] có vẻ như bị thiếu trong danh sách –

+0

@Tyson: Vâng, vì vậy tôi nghi ngờ một hoặc hai có thể bị thiếu. Hy vọng rằng sẽ giúp bạn bắt đầu mặc dù. Chỉ cần tìm kiếm những người cụ thể nếu bạn thấy mình muốn có một bí danh. :) – Noldorin

+5

Có rất nhiều mất tích (bao gồm tất cả những cái 2.0) và hầu hết những cái ở đây không phải là máy gia tốc kỹ thuật. Sử dụng phương pháp trong bài viết của Keith Hill để có danh sách (và tùy chọn, để sửa đổi nó). Bất kỳ loại nào trong không gian tên "Hệ thống" có thể trông giống như một máy gia tốc, nhưng chỉ vì bạn có thể * luôn * rời khỏi "Hệ thống". ngoài mặt trước của một loại ... Ký hiệu mảng cũng không phải là bộ tăng tốc riêng biệt, bởi vì ký hiệu mảng tự động có sẵn cho bất kỳ loại nào, bao gồm cả bộ tăng tốc kiểu. – Jaykul

3

@Noldorin có danh sách tốt về một số bộ tăng tốc kiểu, với một số.

PowerShell cũng cho phép bạn sử dụng loại chữ để đúc đối tượng, gọi phương thức tĩnh, truy cập thuộc tính tĩnh, phản ánh lại và bất kỳ thứ gì khác bạn có thể thực hiện với đối tượng System.Type.

Để sử dụng kiểu chữ, bạn chỉ cần đặt tên đầy đủ (không gian tên và tên lớp) của lớp (hoặc cấu trúc hoặc enum) (với dấu cách tách không gian tên và tên lớp) kèm theo trong ngoặc vuông như sau:

[System.Net.NetworkInformation.IPStatus] 

PowerShell cũng sẽ cung cấp "Hệ thống" hàng đầu. trong nỗ lực giải quyết tên, vì vậy bạn không cần sử dụng rõ ràng điều đó nếu bạn đang sử dụng thứ gì đó trong không gian tên System *.

[Net.NetworkInformation.IPStatus] 

Oisin Grehan (a PowerShell MVP) also has a blog post about creating your own type accelerators.

+0

Thú vị, cảm ơn. –

+0

Xem bài đăng mới hơn của Oisin về chủ đề được liên kết trong câu trả lời của Keith Hill. – JasonMArcher

12

Cách dứt khoát là để làm gì Oisin demontrates trong excellent blog post này:

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 
... 

Lưu ý rằng bạn cần phải thêm gia tốc 'tăng tốc' mới vào từ điển vì loại TypeAccelerators không được công khai. Tuyệt vời những gì bạn có thể làm với .NET Reflector và rất nhiều thời gian rảnh rỗi. :-) Bạn đá Oisin!

+0

Đây là bài đăng tốt hơn nhiều so với bài đăng cũ hơn của Oisin (đây là loại hack). – JasonMArcher

+2

Tôi đã viết một mô-đun để liệt kê, thêm và xóa trình tăng tốc loại tùy chỉnh một thời gian trước ... Tôi vừa đăng bản cập nhật lên PoshCode: http://poshcode.org/1398 – Jaykul

12

Vì câu hỏi này được hỏi và trả lời 4 năm trước, PowerShell đã tiếp tục phát triển. @ KeithHill của câu trả lời ngắn gọn tiếc là không còn hoạt động. Tôi đã đào một chút và thấy rằng lớp học cần thiết chỉ là một chút ít tiếp xúc. Trên mặt tươi sáng, danh sách các loại tăng tốc có thể bây giờ sẽ được hiển thị chỉ với dòng này một mã ...

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

... do Jaykul trong Connect post này.

Đây là một kết quả từng phần:

 
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 Cập nhật

Tính đến PowerShell Community Extensions (PSCX) phiên bản 3.1.0, bây giờ bạn có thể sử dụng một loại gia tốc để liệt kê tất cả các máy gia tốc loại và chỉ cần gọi này:

[accelerators]::get 
1

Dưới đây là một danh sách đầy đủ hơn:

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