A következő táblázatban összefoglaltam a PowerShell által rövid névvel is hivatkozott típusokat és azok .NET Frameworkbeli típusmegnevezését:
PowerShell rövid név |
.NET típusnév |
[adsi] |
System.DirectoryServices.DirectoryEntry |
[adsisearcher] |
System.DirectoryServices.DirectorySearcher |
[array] |
System.Array |
[bool] |
System.Boolean |
[byte] |
System.Byte |
[char] |
System.Char |
[datetime] |
System.DateTime |
[decimal] |
System.Decimal |
[double] |
System.Double |
[float] |
System.Single |
[hashtable] |
System.Collections.Hashtable |
[int] |
System.Int32 |
[ipaddress] |
System.Net.IPAddress |
[long] |
System.Int64 |
[powershell] |
System.Management.Automation.PowerShell |
[psobject] |
System.Management.Automation.PSObject |
[ref] |
System.Management.Automation.PSReference |
[regex] |
System.Text.RegularExpressions.Regex |
[scriptblock] |
System.Management.Automation.ScriptBlock |
[single] |
System.Single |
[string] |
System.String |
[switch] |
System.Management.Automation.SwitchParameter |
[type] |
System.Type |
[void] |
System.Void |
[wmi] |
System.Management.ManagementObject |
[wmiclass] |
System.Management.ManagementClass |
[wmisearcher] |
System.Management.ManagementClass |
[xml] |
System.Xml.XmlDocument |
Megjegyzés
A típusok rövid hivatkozásainak teljes listáját a következő kifejezéssel tudjuk megkapni:
PS C:\> [PSObject].Assembly.GetType("System.Management.Automation.TypeAccelerat
ors")::Get.getenumerator() | Sort-Object -Property key
Key Value
--- -----
adsi System.DirectoryServices.DirectoryE...
adsisearcher System.DirectoryServices.DirectoryS...
Alias System.Management.Automation.AliasA...
AllowEmptyCollection System.Management.Automation.AllowE...
AllowEmptyString System.Management.Automation.AllowE...
AllowNull System.Management.Automation.AllowN...
array System.Array
bigint System.Numerics.BigInteger
bool System.Boolean
byte System.Byte
char System.Char
…
Ezt konkrétan a PowerShell 4.0-án futtattam.
Ezen kívül természetesen használható más típus is a .NET Frameworkből, de akkor a típus hivatkozásánál a teljes névvel kell hivatkozni, mint ahogy ezt tettük korábban a System.Collections.ArrayList típusnál. Az adott típusú (vagy más szóval osztályba tartozó) objektumot, azaz annak a típusnak egy példányát a new‑object cmdlettel tudjuk létrehozni.
Megjegyzés
Valójában a „system” előtagot nem feltétlenül kell kiírni, mert ezt a PowerShell a típus elé biggyeszti, ha az a kifejezés, amit használtunk nem található szó szerint a típuskönyvtárban:
[12] PS C:\> $al = New-Object collections.arraylist
[13] PS C:\> $al.gettype().fullname
System.Collections.ArrayList
Ezen kívül nagyon sok olyan típus van a .NET Frameworkben, amelyek estében nem csak akkor profitálhatunk az osztály metódusaiból, ha azok egy példányát, objektumát hozzuk létre, hanem maga az osztály (típus) is rendelkezik metódusokkal, tagjellemzőkkel. Például ilyen a [math] - matematika osztály. Ebből nem csinálunk tényleges objektumot, hanem magának a [math] típusnak hívjuk meg a metódusait, tulajdonságait. Ehhez speciális szintaxist kell alkalmazni:
[1] PS C:\> [math]::pi
3,14159265358979
A fenti példában a [math] osztály PI tulajdonságát olvasom ki. Ehhez a (:: ) un. static member hivatkozást kell alkalmazni.
Nézzük meg, hogy hogyan lehet egy statikus metódust meghívni:
[2] PS C:\> [math]::Pow(3,2)
9
Itt a hatványozás statikus metódust hívtam meg: 32 = 9.