String型の値にダブルクォーテーションを付けて出力させる、という処理が頻繁にあったため、String型にメソッドを追加してみました。
メソッド名はAddDoubleQuoteとし、以下のようにして使用できるようにしたいと思います。
PS> $str = "Test" PS> $str.AddDoubleQuote() PS> "Test"
以下は、AddDoubleQuoteメソッド作成手順です。
まずは、xmlファイルを作成します。
<?xml version="1.0" encoding="utf-8" ?>
<Types>
<Type>
<Name>System.String</Name>
<Members>
<ScriptMethod>
<Name>AddDoubleQuote</Name>
<Script>
'"' + $this + '"'
</Script>
</ScriptMethod>
</Members>
</Type>
</Types>
Stringクラスの拡張となるため、<Name>タグにはSystem.Stringを記述。
メソッド名は、AddDoubleQuoteとするので、<ScriptMethod>タグの中の<Name>タグの中に記述します。
そして、実際の処理は<Script>タグの中に記述します。
自分自身は$thisで表されます。ここでは$thisの両脇にダブルクォーテーションが付くようにしています。
上記のXMLファイルは、拡張子をps1xmlとして保存します。
今回は $pshome 配下に AddDoubleQuote.ps1xml という名前で保存しました。
AddDoubleQuoteメソッドを使用できるようにするには、Update-TypeDataコマンドレットを使用します。
update-typedata -prependpath C:\Windows\System32\WindowsPowerShell\v1.0\AddDoubleQuote.ps1xml
あとは、最初の例に示した方法で使用します。
PS> $str = "Test" PS> $str.AddDoubleQuote() PS> "Test"
追加したAddDoubleQuoteメソッドは、PowerShellコンソール単位でしか使えません。
処理を永続化したい場合は、$PROFILEに登録しておきましょう。
プロファイルがまだない場合は下記コマンドで作成します。
New-item –type file –force $profile
あとは、作成したプロファイルに下記を追加します。これで、次回以降PowerShellが起動されたときから AddDoubleQuoteメソッドが使えるようになります。
update-typedata -prependpath C:\Windows\System32\WindowsPowerShell\v1.0\AddDoubleQuote.ps1xml

コメント