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.