PowerShell: 0パディング(0埋め)の方法。1 → 001

PowerShellで0パディング(0埋め)する方法を紹介します。
例えば、数値「1」の先頭に0を付けて3桁の「001」にしたり、 文字列「"1"」を「001」にする方法です。 ここでは数値と文字列の場合に分けて解説します。

数値の0パディング

数値を0パディングする場合は「フォーマット演算子(-f)」を使用します。
整数の場合と浮動小数点数の場合をそれぞれ紹介。

整数

コロン(:)の後に0埋めする桁数を指定します。 「000」を指定すると3桁、数が多い場合は「D5」のように「D桁数」と指定することも可能です。 書式指定のフォーマットは.NET Frameworkのフォーマットに準拠します。

# 整数
$num = 1

# 3桁
$s3 = "{0:000}" -f $num
$s3

# 4桁
$s4 = "{0:0000}" -f $num
$s4

# 5桁
$s5 = "{0:D5}" -f $num
$s5
実行結果
001
0001
00001

浮動小数点数

浮動小数点数の場合は、 コロンの右側で「0.00」のように小数点以下を何桁にしたいか指定します。

# 浮動小数点数
$flo = 1.1

# 小数点以下2桁
$f2 = "{0:0.00}" -f $flo
$f2

# 小数点以下3桁
$f3 = "{0:0.000}" -f $flo
$f3

# 整数部分3桁+小数点以下2桁
$f3_2 = "{0:000.00}" -f $flo
$f3_2
実行結果
1.10
1.100
001.10

文字列の0パディング

上で使用したフォーマット演算子(-f)は数値に対して使用できる演算子で、 文字列に対しては機能しません。
文字列を0埋めするには2つの方法があります。

  • 文字列を数値に変換してフォーマット演算子を使う
  • PadLeftメソッドを使用する

それぞれの方法を解説します。

文字列を数値に変換してフォーマット演算子を使用

文字列を整数に変換する場合は角括弧を使って「[int]変換対象」 と記述すると整数に変換できます。

コードは次のようになります。

$a = "1" # 文字列

$s3 = "{0:000}" -f [int]$a
$s3
実行結果
001

PadLeftメソッドを使用

PadLeftは.NET Framework Stringクラスのメソッドで、 文字列の左側に任意の文字列を埋め込むことができます。 埋め込む文字列に"0"を指定することで0埋めになります。

書式
文字列.PadLeft(全体文字数 [, 埋め込む文字])

PadLeftを使って0埋めするコードは次の通りです。

$a = "1" #文字列

$s3 = $a.PadLeft(3, "0")
$s3

$s4 = $a.PadLeft(4, "0")
$s4
実行結果
001
0001
PowerShell