メールの本文を生成する場合などに、きれいにフォーマットするためスペースなどで埋めたり、文字数でカットして成形したい時がある。
ただ、PowerShellだと、半角の「ABCD」というのと、全角の「ABCD」はおなじ4文字としてカウントされる。
そこでVBのLeftBのようにバイト数で切り取ってみる。
■使い方
> Get-SubStringBytes "ABCD" 2 2 #半角文字を2バイト目から2バイト切り取る
CD
> Get-SubStringBytes "ABCD" 2 2 #全角文字を・・・(略)
B
- function Get-SubStringBytes([String]$Text, [int]$StartIndex = 0, [int]$Length = 0) {
- $enc = [System.Text.Encoding]::Default
- $bytes = $enc.GetBytes($Text)
- return $enc.GetString($bytes, $StartIndex, $Length)
- }
1 コメント:
素晴らしいです、ありがとうございます!
コメントを投稿