変数と型

変数

基本

変数は先頭に$をつけて定義します。
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


スポンサーリンク