半角→全角
Add-Type -AssemblyName Microsoft.VisualBasic
using namespace Microsoft.VisualBasic
$narrow = "wide_case"
$wide = [Strings]::StrConv($narrow, [VbStrConv]::Wide)
$wide #=> wide_case
全角→半角
Add-Type -AssemblyName Microsoft.VisualBasic
using namespace Microsoft.VisualBasic
$wide = "narrow_case"
$narrow = [Strings]::StrConv($wide, [VbStrConv]::Narrow)
$narrow #=> narrow_case
- PowerShell 5.0から
using namespace
が使えるようになった。それより前のバージョンでは、クラスを使用するときは完全装飾名でなければならない。 -
Add-Type
コマンドレットは、PowerShellで使用できるクラスを増やすコマンドレット。アセンブリ名を指定すれば、そのアセンブリ内のクラスが使えるようになる。他にもC#やVisualBasicのコード(メソッドだけでも可)からクラスを生成したり、DLLファイルのパスを指定してクラスを追加することができる。多機能。
上記コードのコマンドレット版
Add-Type -AssemblyName Microsoft.VisualBasic
function ConvertTo-Wide
{
param
(
[Parameter(ValueFromPipeline=$true)]
[string]
$String
)
process
{
[Microsoft.VisualBasic.Strings]::StrConv($String, [Microsoft.VisualBasic.VbStrConv]::Wide)
}
}
function ConvertTo-Narrow
{
param
(
[Parameter(ValueFromPipeline=$true)]
[string]
$String
)
process
{
[Microsoft.VisualBasic.Strings]::StrConv($String, [Microsoft.VisualBasic.VbStrConv]::Narrow)
}
}