目次
PowerShellでの変数の扱い方について
今回は、PowerShellでの変数の扱い方について説明します。
ここでは、「変数の定義」・「変数の型指定」・「変数一覧」・「変数の削除」・「環境変数」・「自動変数」について紹介します。
PowerShellでの変数の扱い方に興味のある方はぜひご覧ください。
変数の定義
PowerShellでの変数の定義方法を紹介します。
実際のコマンドを見てみましょう。
数字や文字列は以下のように定義します。
1
2
3
4
5
6
7
|
PS C:\> $val = "value"
PS C:\> $val
value
PS C:\> $val = 3
PS C:\> $val
3
PS C:\>
|
${}で囲めば、変数名に空白や日本語を指定することもできます。
1
2
3
4
5
6
7
8
|
PS C:\> ${some val} = "value2"
PS C:\> ${some val}
value2
PS C:\>
PS C:\> ${変数 名前} = "value3"
PS C:\> ${変数 名前}
value3
PS C:\>
|
変数の型指定
PowerShellでの変数の型を指定する方法を紹介します。
実際のコマンドを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
PS C:\> [byte]$val = 1
PS C:\> $val.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Byte System.ValueType
PS C:\> [int]$val = 1
PS C:\> $val.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Int32 System.ValueType
PS C:\> [double]$val = 1.1
PS C:\> $val.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Double System.ValueType
PS C:\> [string]$val = "string"
PS C:\> $val.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
PS C:\>
|
[int]や[string]など、変数の前に型を記述します。このように、PowerShellでは変数の型指定ができます。
変数一覧
PowerShellで、現在定義されている変数一覧を取得する方法を紹介します。
Get-Variableコマンドを使用します。
実際のコマンドを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
PS C:\> Get-Variable
Name Value
---- -----
$ )
? True
^ $val
args {}
ConfirmPreference High
ConsoleFileName
DebugPreference SilentlyContinue
Error {System.Management.Automation.ParseException: 発生場所 行:2 文字:4...
ErrorActionPreference Continue
(中略)
|
長いので途中で省略しました。
Where-Objectコマンドでフィルタリングすれば、自分で定義した変数も含まれていることが分かります。
1
2
3
4
5
6
7
8
|
PS C:\> Get-Variable | Where-Object {$_.Name -eq 'val'}
Name Value
---- -----
val string
PS C:\>
|
変数の削除
PowerShellで、変数を削除する(未定義の状態にする)方法を紹介します。
Remove-Variableコマンドを使用します。
実際のコマンドを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
PS C:\> $test_val ="string"
PS C:\> $test_val
string
PS C:\> Get-Variable | Where-Object {$_.Name -eq 'test_val'}
Name Value
---- -----
test_val string
PS C:\> Remove-Variable -Name test_val -Force -ErrorAction Ignore
PS C:\> $test_val
PS C:\> Get-Variable | Where-Object {$_.Name -eq 'test_val'}
PS C:\>
|
環境変数
PowerShellで、環境変数を取得する方法を紹介します。
Get-ChildItemコマンドに env:を指定します。
実際のコマンドを見てみましょう。
1
2
3
4
5
6
7
8
|
PS C:\> Get-ChildItem env:
Name Value
---- -----
ALLUSERSPROFILE C:\ProgramData
APPDATA C:\Users\user\AppData\Roaming
CommonProgramFiles C:\Program Files\Common Files
(中略)
|
特定の環境変数を取得することもできます。例えば、環境変数Pathを取得する場合は以下のように記述します。
1
2
3
4
5
6
7
8
|
PS C:\> Get-ChildItem env:Path
Name Value
---- -----
Path C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\pik\;C:\app\user\product\...
PS C:\>
|
自動変数
PowerShellで、自動変数の使い方を紹介します。
実際のコマンドを見てみましょう。
“$_”は入力行を一行分取得できます。
1
2
3
4
5
6
7
8
|
PS C:\> $test_val ="string"
PS C:\> $test_val
string
PS C:\> Get-Variable | Where-Object {$_.Name -eq 'test_val'}
Name Value
---- -----
test_val string
|
“$args”は引数リストです。第1引数が$args[0]、第2引数が$args[1]、…となります。
1
2
3
4
5
6
|
PS C:\> function Sample-Add-Func {
>> Write-Host ($args[0] + $args[1])
>> }
PS C:\> Sample-Add-Func 1 2
3
PS C:\>
|
“$?”は直前のコマンドの実行結果が保存されています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
PS C:\> [int]$val = 1
PS C:\> $?
True
PS C:\> [int]$val = "string"
値 "string" を型 "System.Int32" に変換できません。エラー: "入力文字列の形式が正しくありません。"
発生場所 行:1 文字:1
+ [int]$val = "string"
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : MetadataError: (:) [], ArgumentTransformationMetadataException
+ FullyQualifiedErrorId : RuntimeException
PS C:\> $?
False
PS C:\>
|
まとめ
いかがでしたでしょうか。PowerShellの「変数の定義」・「変数の型指定」・「変数一覧」・「変数の削除」・「環境変数」・「自動変数」について紹介しました。
ぜひご自身でコマンドを書いて、理解を深めてください。
インフラエンジニア専門の転職サイト「FEnetインフラ」
FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。
転職をお考えの方は気軽にご登録・ご相談ください。