変数と型
変数
基本
変数は先頭に$をつけて定義します。
PowerShellでは大文字小文字を区別しません。
PS> $a = 1
PS> $a
1
PS> $A
1
コマンドレットやメソッドなどの結果をオブジェクトで保存できます。
PS> $date = Get-Date
PS> $date.Year
2018
特殊な文字を含める場合
使用できない特殊文字(-, (, ), ., :など)がある場合は、${}を使います。
PS> ${test-test} = "test"
PSドライブのアイテムは変数として扱えます。
# 例 FileSystemプロバイダのアイテム(script.ps1)を対象とする
PS C:\Users\user\Desktop> ${C:\Users\user\Desktop\script.ps1}
Write-Host "Hello!"
PS C:\Users\user\Desktop> .\script.ps1
Hello!
型
型の使い方
完全修飾名とエイリアスの両方が使えます。
PS> [System.Int32]$a = 1 # 完全修飾名
PS> [int]$a = 1 # 型エイリアス
型の調べ方
- Get-Memberを使用する
- GetTypeメソッドを使用する
PS> $a = 1
PS> $a | Get-Member
TypeName: System.Int32
~以下略~
PS> $a.GetType().FullName
System.Int32
型チェック
PS> $a -is [int]
True
PS> $a -isnot [int]
False
型変換
明示的な型変換(キャスト)
方法が複数あります。
- $変数 = [型] キャスト対象
不可能なキャストの場合:エラーになる - $変数 = キャスト対象 -as [型]
不可能なキャストの場合:エラーにはならず、Nullを返す
「$変数 = [型] キャスト対象」の方だけ覚えておけば良さそう。
エラー出てくれるので。
# $変数 = [型] キャスト対象。
PS> $date = [datetime]"2018/05/16"
PS> $date.Date
2018年5月16日 0:00:00
PS> $date.Day
16
# $変数 = キャスト対象 -as [型]
PS> $date = "2018/05/16" -as [datetime]
PS> $date.DayOfWeek
Wednesday
PS> $date = "a" -as [datetime] # 不可能なキャスト
PS> $date
PS>
暗黙の型変換
左辺の型に合わせて、右辺の型が変換されます。
PS> $a = 1
PS> $b = "1"
PS> $a + $b # $bが[int]に変換される
2
PS> $b + $a # $aが[string]に変換される
11
YouTube
動画による説明はこちら。
参考リンク
About Variables | Microsoft Docs
スポンサーリンク