【powershell】 変数に関するコマンドレット
1.品揃え
- New-Variable
- Set-Variable
- Get-Variable
- Clear-Variable
- Remove-Variable
2.検証
1) New-Variable :変数の作成
新しい変数を作成。
> New-Variable a
宣言と同時に初期化するなら以下の通り。
> New-Variable a -Value 12345 > $a 12345
たぶん、上記はもっと簡単な記法があるから覚えなくていい。 define的に定数宣言(削除できない)する方法。
> New-Variable def_max_length -Value 256 -Option Constant > Remove-Variable def_max_length <-削除してみた Remove-Variable : 変数 def_max_length は定数または読み取り専用であるため、削除できません。変数が読み取り専用である場合は、Force オプションを指定して操作を再試行してください。 発生場所 行:1 文字:1 + Remove-Variable def_max_length + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : WriteError: (def_max_length:String) [Remove-Variable], SessionStateUnauthoriz edAccessException + FullyQualifiedErrorId : VariableNotRemovable,Microsoft.PowerShell.Commands.RemoveVariableCommand
-Option Constant の部分を-Option ReadOnly だと、読取専用だが削除可能。そして-Forceで値の変更は可能。ちょっと中途半端なオプション。
2) Set-Variable : 変数に値を設定
値を設定。変数がなければ、作成したうえで設定してくれる。
> New-Variable -Name aa -Value "This is a pen." -Option ReadOnly > $aa This is a pen. > Set-Variable -Name aa -Value "This is not a pen." -Force > $aa This is not a pen. →-Forceオプションをつければ、READONLY変数も強制設定できる。 →READONLYでなければ、-Forceは不要。 > Set-Variable -Name bb -Value "This is a pen." > $bb This is a pen. →変数がなければ、作成したうえで設定してくれる。
3) Get-Variable : 変数の値を取得
変数を探したり、変数に格納された値を参照する。
> $a = "hoge" > $aa = "hoge hoge"
こんな風に変数を準備した。
では、確認していこう。
> Get-Variable a ・・・変数aを参照 Name Value ---- ----- a hoge > Get-Variable a* ・・・aで始まる変数を探して列挙 Name Value ---- ----- a hoge aa hoge hoge args {} > Get-Variable -include a* -ValueOnly ・・・値のみを参照 hoge hoge hoge > Get-Variable -include a* | Select-Object Name ・・・Nameプロパティのみ選択 Name ---- a aa args
4) Clear-Variable : 変数を初期化
リファレンスによると変数の値はNULLにセットされるらしい。変数自体は削除されることなく、器は残ったままで中身が空っぽになる。
> $a = "hogehoge" > $a hogehoge > Clear-Variable a > Get-Variable a ・・・変数を閲覧 Name Value ---- ----- a > $a -eq $null ・・・NULLがセットされているか確認 True
5) Remove-Variable : 変数を削除
変数が削除される。器ごと削除されるので、以降、同じ変数名で作成しても別物として扱われる。
> $a ="hogehoge" > $a hogehoge > Remove-Variable a ・・・変数を削除 > Get-Variable a ・・・変数を閲覧 → 変数自体が無くなっているため、参照自体がエラーとなる Get-Variable : 名前 'a' の変数が見つかりません。 発生場所 行:1 文字:1 + Get-Variable a + ~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (a:String) [Get-Variable], ItemNotFoundException + FullyQualifiedErrorId : VariableNotFound,Microsoft.PowerShell.Commands.GetVariableCommand ```