PowerShellで変数の型を確認する方法|GetType()と-is演算子の使い方

目次

スポンサードリンク

PowerShellでは、変数の中身がどの型(文字列、数値、配列など)なのかを簡単に確認できます。本記事では、型を確認するための2つの方法として、 GetType() と -is 演算子を使う方法を解説します。

.GetType().Name で型名を表示する

PowerShellの変数は.NETオブジェクトであり、GetType() メソッドでその型を確認できます。

以下の例では、1行目で $var という変数を宣言し、hello という文字列を代入しています。2行目では、GetType() メソッドで取得したオブジェクトから、.Name プロパティを表示してます。この変数の型は String であることが分かりました。

PS C:\Users\username> $var = "hello"
PS C:\Users\username> $var.GetType().Name
String

なお、.Name は型名のみ表示しますが、名前空間も含む完全な型名を表示したい場合は、.FullName プロパティを使用しましょう。

PS C:\Users\username> $var.GetType().FullName
System.String

-is 演算子で型チェックする方法

-is 演算子を使うと、変数の型がなにか論理的にチェックすることができます。

以下の例では、1行目で $var という変数を宣言し、123 という数値を代入しています。 $var -is [int] では、変数$varが整数か確認しています。変数の型は整数で一致するので、ブール値 True が表示されています。一方 [String] と指定すると False と表示されています。

PS C:\Users\username> $var = 123
PS C:\Users\username> $var -is [int]
True
PS C:\Users\username> $var -is [string]
False

よく利用する型の判定例は以下の通りです

型名 判定記述
文字列 [string] "abc" -is [string]True
整数 [int] 123 -is [int]True
配列 [array] @(1,2,3) -is [array]True
日時 [datetime] Get-Date -is [datetime]True
ブール値 [bool] $true -is [bool]True
ハッシュテーブル [hashtable] @{a=1} -is [hashtable]True


PowerShellでは、変数の中身が動的に決まるため、必要に応じて変数の型が意図した通りかチェックしましょう。


PowerShellの基礎を一通り学べるおすすめ書籍
Windows環境で開発やシステム管理を行うエンジニアにとって、PowerShellの知識は非常に重要なスキルセットです。こちらの書籍はサンプルも豊富で手元に置いておきたい一冊です。

コマンドプロンプトのポケットリファレンス:Windows11対応版