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
コメント