PowerShell: データ型変換 文字列⇔数値、日付⇔文字列など
PowerShellでデータ型を変換する場合は[]角括弧を使って
「[変換したいデータ型」変換対象」と記述します。
例えば文字列型に変換する場合は
[string]変換対象
数値型(Int32型)に変換する場合は
[int]変換対象
と記述します。
では具体的に見ていきます。
目次
文字列を数値型に変換
[int]〇〇で数値型(Int32型)に変換します。
$s = "10" $s.GetType().Name # String # 数値型に変換 $n = [int]$s $n.GetType().Name # Int32
数値型を文字列型に変換
[string]〇〇で文字列型に変換します。
$n = 10 $n.GetType().Name # Int32 # 文字列型に変換 $s = [string]$n $s.gettype().Name # String
文字列をDateTime型(日付型)に変換
[datetime]〇〇でDateTime型に変換します。
$s = "2020/1/1" $s # 2020/1/1 $s.GetType().Name # String # DateTime型に変換 $d = [datetime]$s $d # 2020年1月1日 0:00:00 $d.GetType().Name # DateTime
DateTime型を文字列型に変換
[string]〇〇で文字列型に変換します。
$d = Get-Date $d # 2022年3月5日 11:19:34 $d.GetType().Name # DateTime # 文字列型に変換 $s = [string]$d $s # 03/05/2022 11:19:34 $s.GetType().Name # String
double型(浮動小数点数)をint型(整数)に変換
[int]〇〇で整数型に変換しますが、
小数点部分を四捨五入した値となります。
以下のコードで「$f = 3.4」の場合、
$nの値は「3」となります。
$f = 3.5 $f.GetType().Name # Double $n = [int]$f $n # 4 $n.GetType().Name # Int32
int型(整数)をdouble型(浮動小数点数)に変換
[double]〇〇でdouble型に変換します。
$n = 10 $n.GetType().Name # Int32 $f = [double]$n $f # 10 $f.GetType().Name # Double
変換できない場合
型変換を行う場合、 指定したデータ内容によっては変換できあい場合があります。 その場合はエラーが発生します。
次のコードでは文字列"abc"を数値型に変換しようとして エラーが発生しています。
$n = [int]"abc" # 実行結果(エラー) Cannot convert value "abc" to type "System.Int32". Error: "Input string was not in a correct format."
(まとめ記事: PowerShell 変数)