PowerShell: 文字列のパディング(左寄せ、右寄せ)

PowerShellで文字列を右寄せや左寄せなどの パディング(一定の長さに整形)を行う方法を紹介します。
右寄せにしたい場合はPadLeftメソッド、 左寄せにしたい場合はPadRightメソッドを利用します。 「Pad」はPaddingの略で、 どちらも.NET Framework Stringクラスのメソッドです。

PadLeft: 右寄せ(左側に空白や文字を埋め込む)

PadLeftメソッドは文字列の左側に空白や文字を埋め込むことで、 文字列を右寄せにできます。書式は次の通りです。

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

第1引数に全体の文字数を指定し、 第2引数に埋め込む文字を指定します。 埋め込む文字を省略した場合は「空白」を埋め込みます。

次のサンプルコードでは、 PadLeftメソッドを使って文字列を右寄せにしています。 三番目の$cは埋め込む文字として「_」アンダースコアを 指定しています。

$a = "abc"
$b = "abcde"
$c = "abcdefgh"

$a.PadLeft(10)
$b.PadLeft(10)
$c.PadLeft(10, "_")

# 実行結果
       abc
     abcde
__abcdefgh

PadRight: 左寄せ(右側に空白や文字を埋め込む)

PadRightメソッドは文字列の右側に空白や文字を埋め込むことで、 文字列を左寄せにできます。書式は次の通りです。

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

第1引数に全体の文字数を指定し、 第2引数に埋め込む文字を指定します。 埋め込む文字を省略した場合は「空白」を埋め込みます。

次のサンプルコードでは、 PadRightメソッドを使って文字列を左寄せにしています。 1番目の$aは、見た目ではわかりにくいですが右側に空白が埋め込まれています。 2番目は「*」、3番目は「_」を指定しています。

$a = "abc"
$b = "abcde"
$c = "abcdefgh"

$a.PadRight(10)
$b.PadRight(10, "*")
$c.PadRight(10, "_")

# 実行結果
abc       
abcde*****
abcdefgh__
PowerShell