PowerShell変数
PowerShellの変数宣言
変数宣言
PowerShellでは、「$」から始まる単語は変数になります。
変数の宣言をしなくても変数を使用可能であり、どんな型の値でも代入できます。
$msg = "variable"
$val = 1
変数は「Variant型」ではなく「Object型」となります。「.NET Framework」のオブジェクトであるため、操作を行うことが可能です。「.NET Framework SDK」のヘルプを参照すれば、数値や文字列に対してどのような操作が可能であるか調べることができます。
> $val = 123
> $val1.GetType().FullName
System.Int32
変数の型
PowerShellでは、明示的に型を指定する方法も準備されています。
[型] 変数名 = 値
型には以下の種類があります。
[byte]$val = 1 # byte
[int]$val = 2 # int
[double]$val = 3.14159 # double
[string]$val = "windows" # string
PowerShellの変数スコープ
スコープは以下の形式で指定します。
スコープ:変数
スコープを指定せずに宣言した変数はローカルスコープとして扱われます。
グローバル | global | スクリプトファイル外からでも読み書き可能 |
スクリプト | script | 同一スクリプトファイルに限り、読み書き可能 |
ローカル | local | 現在のブロック内、及び子ブロック(ブロック中にブロックを記述する場合)から読み書き可能 |
プライベート | private | 現在のブロック内からのみ読み書き可能 |
下記スクリプトの実行結果は「PRIVATE SCOPE, LOCAL SCOPE, SCRIPT SCOPE」となります。
Function Set-Value {
$local:val = "LOCAL SCOPE, "
Set-SubValue
Write-Host $val
}
Function Set-SubValue {
$private:val = "PRIVATE SCOPE, "
Write-Host $val
}
$val = "SCRIPT SCOPE"
Set-Value
Write-Host $val
自動変数(シェル変数)
PowerShell起動直後に「Get-Variable」を実行すれば、自動変数について調べることができます。(詳細は「Get-Help about_automatic_variables」を参考にできます。)
代表的な自動変数は以下の通りです。
$$ | 前のコマンド ラインの最後のトークン。 |
$^ | 前のコマンド ラインの最初のトークン。 |
$? | 最後のコマンドの論理値状態。 |
$_ | 現在のパイプライン オブジェクト。 |
$args | スクリプトまたは関数の引数。 |
$input | スクリプトにパイプで連結されているオブジェクトの列挙子。 |
$Matches | -match 演算子で検出された一致結果の連想配列。 |
$HOME | ユーザーのホーム ディレクトリ。 |
$Error | 前のコマンドのエラーの配列。 |
$MyInvocation | スクリプトファイル自身に関する情報 |
関連ページ
- Windows
- PowerShellスクリプトの作成と実行
- PowerShell変数
- PowerShell配列
- PowerShell連想配列(ハッシュ)
- PowerShell演算子
- PowerShell制御構文
- PowerShell関数
- PowerShell例外処理
- PowerShellファイル操作
- PowerShell設定ファイルの読み込み