【PowerShell】0埋めで桁を合わせる

CODE,PowerShell

PowerShellで0埋めで桁合わせをする方法です。

記載内容 ①数値型に対する桁合わせ
②文字列型に対する数字での桁合わせ
③文字列型に対する文字列での桁合わせ
それぞれの注意点

①数値型に対して数字の0でパディングする

-f を使って数字の0でパディングします。

$int1 = 123
$int2 = "{0:0000000000}" -f $int1
$int3 = "{0:D10}" -f $int1

Write-Host $int1
Write-Host $int2
Write-Host $int3

【実行結果】

123
0000000123
0000000123

注意点

文字列に対してはパディングされません。

$str1 = "123"
$str2 = "{0:0000000000}" -f $str1
$str3 = "{0:D10}" -f $str1

Write-Host $str1
Write-Host $str2
Write-Host $str3

【実行結果】

123
123
123

②文字列型に対して数字の0でパディングする

文字列に対してパディングする場合は数値型に変換してパディングします。

$str1 = "123"
$str2 = "{0:0000000000}" -f [int]$str1
$str3 = "{0:D10}" -f [int]$str1

Write-Host $str1
Write-Host $str2
Write-Host $str3

【実行結果】

123
0000000123
0000000123

③文字列型に対して文字列の"0"でパディングする

PadLeft を使って"0"(文字列)でパディングします。

$str1 = "123"
$str2 = $str1.PadLeft(10,"0")

Write-Host $str1
Write-Host $str2

【実行結果】

123
0000000123

注意点

パディングに用いる値に数値を指定するとパディングされません。
その場合は空白を指定した結果と同じになります。

$str1 = "123"
$str2 = $str1.PadLeft(10," ")
$str3 = $str1.PadLeft(10,0)

Write-Host "1234567890"
Write-Host $str1
Write-Host $str2
Write-Host $str3

【実行結果】

1234567890
       123
       123

参考書