晴耕雨読

working in the fields on fine days and reading books on rainy days

PowerShellにおける変数の定義・読み書き

PowerShellの変数には様々な種類が存在します。 ここでは、記号を変数名に含む変数や、変数を使ったファイル読み書き、変数の型付けなどについて説明します。

変数の使用

変数名は、英数字で構成する必要があります。なお、変数名は大文字小文字を区別しないため、注意が必要です。

PS> $MYVARIABLE1 = "123"
PS> $myVariable1
123

記号を変数名に含む変数の使用

変数名に特殊文字や記号を含める際は ${ } で囲むだけで、変数名として解釈してくれます。

PS> ${myV@r!ab1e} = "123"
PS> ${myV@r!ab1e}
123

変数によるファイル読み書き

変数を使って絶対パスで指定したファイルの中身の取得や書き込みをすることもできます。 ファイルの読み書きの場合、変数は必ず ${ドライブ名:パス} の形式になります。

PS> ${c:\test\test.txt}
Hello world
PS> Get-Content "c:\test\test.txt"
Hello world

PS> ${c:\test\test.txt} = "test text"
PS> Get-Content "c:\test\test.txt"
test text

変数の型付け

変数宣言時に先頭に型を記述すると、変数宣言時に型付けができるようになり、その変数は常に指定した型であることが保証されます。 指定した型以外の値を代入した場合は自動的にキャストされます。キャストが不可の値のときはエラーになります。

PS> [string] $myVariable = 123
PS> $myVariable += 456
PS> $myVariable
123456

変数名から変数の取得

Get-Variable コマンドレットを使うことで、変数名を表す文字列から変数の値を取得することができます。 これを使うことで動的に変数を取得することができます。

PS> Get-Variable "myVariable"
Name                   Value
----                   -----
myVariable             123456

以上です。

参考文献