変数_1(PowerShell_05)

この連載では、PowerShellについて学んでいきます。前回の記事はこちらになります。

hirocom777.hatenadiary.org

前回は、今まで取り上げられなかったコマンドレットをご紹介しました。

今回は変数です。PowerShellは、任意の種類のオブジェクトを変数に格納できます。

PowerShellの変数

PowerShellの変数は「$」(ドル記号)で始まるテキスト文字列で表されます。変数名では大文字と小文字は区別されません。スペースや特殊文字を含めることができますが「_」以外の特殊文字は使用しないことが推奨されています。PowerShellの変数には、以下の種類があります。

  • ユーザー作成変数
    PowerShellでは、ユーザーが変数を作成、管理できます。 これがユーザー作成変数です。PowerShellコマンドラインで作成される変数は、PowerShellウィンドウが開いている間のみ有効です。 PowerShellウィンドウが閉じられると、変数が削除されます。

  • 自動変数
    自動変数はPowerShellの状態を保存します。 自動変数はPowerShellによって作成され、必要に応じて値を変更します。 自動変数はユーザーによる変更はできません。 最初にPowerShellのバージョンを確認した「$PSVersionTable」は、自動変数になります。

  • ユーザー設定変数
    PowerShellのユーザー設定は、ユーザー設定変数に格納されます。 ユーザー設定変数はPowerShellによって作成され、既定値が設定されます。 ユーザー設定変数はユーザーによる変更が可能です。

PowerShell内で設定されている変数の一覧は、コマンドレット「Get-Variable」を使用します。先頭の「$」を省略した形で表示されます。

PS フォルダーパス> Get-Variable

Name                           Value
----                           -----
__LastHistoryId                9
__psEditorServices_userInput   
__VSCodeOriginalPrompt         …
__VSCodeOriginalPSConsoleHost…  $global:__psEditorServices_userInput
?                              True
^                              $?
...(以下略)

変数操作の基本

変数(ユーザー作成変数)を作成するには、「=」を使用して値を代入します。また、コマンドレットの結果も格納できます。変数の値を変更するには、変数に新しい値を代入します。

PS フォルダーパス> $a = 1
PS フォルダーパス> $a
1
PS フォルダーパス> $a = Get-Command
PS フォルダーパス> $a

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           Add-AppPackage                                     2.0.1.0    Appx
Alias           Add-AppPackageVolume                               2.0.1.0    Appx
Alias           Add-AppProvisionedPackage                          3.0        Dism
...(以下略)

変数の値をクリアするには「$null」を代入します。

PS フォルダーパス> $a = 1
PS フォルダーパス> $a = $null
PS フォルダーパス> $a
PS フォルダーパス>

コマンドレット「Clear-Variable」でもクリア可能です。

PS フォルダーパス> $a = 1
PS フォルダーパス> Clear-Variable a
PS フォルダーパス> $a
PS フォルダーパス>

変数を指定する際に先頭の「$」は記述しません。気を付けましょう。

変数を削除するには、コマンドレット「Remove-Variable」を使用します。

PS フォルダーパス> $a = 1
PS フォルダーパス> Get-Variable -N a

Name                           Value
----                           -----
a                              1

PS フォルダーパス> Remove-Variable -N a
PS フォルダーパス> Get-Variable -N a
Get-Variable: Cannot find a variable with the name 'a'. # エラーになる

色々な値設定

複数の変数に同時に同じ値を代入できます。

PS フォルダーパス> $a = $b = $c = 2
PS フォルダーパス> $a , $b , $c
2
2
2

カンマで区切ることで、複数の変数を同時に確認できます。 複数の変数に、同時に異なる値を代入するともできます。

PS フォルダーパス> $a , $b , $c = 1 , 2 , 3
PS フォルダーパス> $a , $b , $c
1
2
3

次回も変数

いかがでしょうか。変数をうまく使うことがPowerShellを使いこなすコツかも知れません。次回も変数です。変数にも色々な種類があります。お楽しみに!!

hirocom777.hatenadiary.org PowerShell基礎の連載はコチラから