PowerShellの処理結果出力はいろいろありますが、個人的に一番使いであると思う整形です。
C/C++だと、printfでフォーマット出力しますが、こいつをPowerShellでやるとどんな感じになるかってお話です。
PowerShellにもフォーマットを指定する文字があるので、まずはそいつから。
# | 1桁の数値(余分な0は表示されない) |
0 | 1桁の数値(0表示される) |
.(ピリオド) | 小数点位置の指定 |
,(カンマ) | カンマ編集の指定 |
x | 小文字16進(x4とすると4桁を指定) |
X | 大文字16進(X4とすると4桁を指定) |
フォーマット文字列を使ってフォーマット表現はこんな感じにします。
数値をカンマ付にする
#,0 |
数値を固定長にしてリーディングゼロをつける
000000 |
小数以下の指定桁表示
0.000 |
4桁の小文字16進数
x4 |
4桁の大文字16進数
X4 |
では、具体的にフォーマット文字列を使って出力のフォーマットをします。まずは単純な数値のフォーマットです。
数値をカンマ付にする
PS C:\> $Num = 12345.6789 PS C:\> $Num.ToString("#,0") 12,346 |
数値を固定長にしてリーディングゼロをつける
PS C:\> $Num = 12345.6789 PS C:\> $Num.ToString("00000000") 00012346 |
小数以下の指定桁表示
PS C:\> $Num = 12345.6789 PS C:\> $Num.ToString("0.00") 12345.68 |
4桁の小文字16進数
PS C:\> $Num= 255 PS C:\> $Num.ToString("x4") 00ff |
4桁の大文字16進数
PS C:\> $Num= 255 PS C:\> $Num.ToString("X4") 00FF |
C/C++のprintfっぽい使い方ができるのが「-f」です。1つの値は「{n}」で表現し、nが変数の順番になります。
項目の表示幅は「{n,s}」のようにsで表現します。nだけだと右揃え、-sにすると左揃えになります。
数値のフォーマットは「{n,s:Format}」で表現します。
PS C:\> $Str = "ABCD" PS C:\> $Num = 12345.678 PS C:\> "Sring:{0,-8} Number:{1,12:#,0.00}" -f $Str, $Num Sring:ABCD Number: 12,345.68 |
ちょっと変わったところでは、Stringのスタティック メンバーを使って「[String]::Format」でも整形できます。表記はこっちの方がpritfに近いかも?
$Str = "ABCD" $Num = 12345.678 [String]::Format("Sring:{0,-8} Number:{1,12:#,0.00}", $Str, $Num) Sring:ABCD Number: 12,345.68 |
Copyright © MURA All rights reserved.