Az 1.3.13 Típuskonverzió fejezetben variáltam a típusokkal. Ebbe a témakörbe tartozik a típusok vizsgálata is. Ha nem lekérni akarjuk egy objektum típusát, hanem rákérdezni, hogy valami valamilyen típusú-e, akkor az –is operátort lehet használni, ha pont arra vagyunk kíváncsiak, hogy egy változó nem valamilyen-e, akkor az ‑isnot operátor használható:
[52] PS I:\>"szöveg" -is [string]
True
[53] PS I:\>"szöveg" -is [object]
True
[54] PS I:\>"szöveg" -is [array]
False
[55] PS I:\>1 -is [double]
False
[56] PS I:\>1.1 -is [double]
True
[57] PS I:\>1.1 -is [float]
False
[58] PS I:\>$true -is [int]
False
[59] PS I:\>$true -is [bool]
True
[60] PS I:\> (get-date) -isnot [int]
True
Minden „dolog” a PowerShellben objektum, így akár a szöveg, vagy a szám is, de akár a típusjelölő is objektum:
[64] PS I:\>[string] -is [object]
True
És egy majdnem örök igazság (kivéve az $a=$null esetet):
[70] PS I:\>$a -is $a.GetType()
True
A már korábban látott típuskonverziós szintaxis mellett használhatunk direkt típuskonvertáló operátort is, ami az ‑as:
[73] PS I:\>"01234" -as [int]
1234
[74] PS I:\>1.1234 -as [int]
1
[76] PS I:\>1.1234 -as [double]
1,1234
[77] PS I:\>112345678 -as [float]
1,123457E+08
[78] PS I:\>112345678 -as [double]
112345678
[79] PS I:\>"szöveg" -as [int]
[80] PS I:\>
A [79]-es sornál látszik, hogy mi a különbség a korábbi típuskonverziós szintaxis és az –as operátor használata között: ez utóbbinál, ha nem tudja végrehajtani a műveletet, akkor nem ad hibajelzést, hanem $null értéket ad vissza.