PowerShell: 変数を宣言・初期化する方法

PowerShellで変数を宣言・初期化する方法は 「New-Variable」コマンドレットを使用する方法と、 使用しない方法があります。 それぞれの方法を紹介した後に、データ型についても簡単に説明します。

New-Variableで変数を宣言・初期化する方法

「New-Variable」コマンドレットを使って変数を宣言する場合は、 変数名の後に「-Value」オプションで初期化することができます。

書式
New-Variable 変数名 -Value 値

次のサンプルコードでは変数「a」を宣言、値を1で初期化しています。 注意点としては、「New-Variable」コマンドレットの後の変数名の部分には 「$」記号が付きません。宣言した後に変数を使用する場合は「$」記号が必要です。

New-Variable a -Value 1

$a = 2

Write-Host $a  # 2

New-Variableを使わない方法

上のコードは次のように書くこともできます。

$a = 1

$a = 2

Write-Host $a  # 2

最初の「$a = 1」の部分が宣言と初期化を兼ねており、 こちらの書き方の方がシンプルです。

あと、PowerShellでは変数の大文字と小文字を区別しないため、 「$a」も「$A」も同じ変数とみなされます。

$a = 1

$A = 2

Write-Host $a  # 2

データ型の指定は不要

PowerShellではデータ型の指定は必要ありません。 PowerShell側で自動的に判断してくれます。

次のサンプルコードでは変数「$a」は数値型、 「$b」は文字列型になり、 「変数.GetType()」でデータ型を確認できます。

$a = 1

$b = "hello"

Write-Host $a.GetType()

Write-Host $b.GetType()

# 実行結果
System.Int32
System.String

変数のデータ型を指定せずに使用する場合は、 途中で異なるデータ型の値を代入しても大丈夫です。 次のコードでは、変数「$a」に数値を入れた次の行で 文字列を代入しています。 おすすめはしませんが、このような使用方法も可能です。

$a = 1

$a = "hello"

Write-Host $a  # hello

変数のデータ型を明示的に指定する方法については 以下のページを参考にしてください。
変数のデータ型を確認・指定する

(まとめ記事: PowerShell 変数

PowerShell