Tuesday, April 29, 2008

今回は、PowerShell上に登録された自作関数を削除する方法を紹介します。

現在、このブログ上で「SQL*PLUSもどきを作る」を連載しているわけですが、これからDisconnect関数を作ろうと思います。

SQL*PLUSもどきを作る その1(PowerShell Tips)
SQL*PLUSもどきを作る その1の説明(PowerShell Tips)
SQL*PLUSもどきを作る その2(PowerShell Tips)
SQL*PLUSもどきを作る その3(PowerShell Tips) 
SQL*PLUSもどきを作る その4(PowerShell Tips)
SQL*PLUSもどきを作る その5(PowerShell Tips)
SQL*PLUSもどきを作る その6(PowerShell Tips)

その1で紹介したPSOracle関数は、動的に関係する関数を読み込むようにしてあります。

このため、PSOracle関数が実行されると、Oracle関連の関数が起動しているPowerShellに登録されることになります。

Disconnectを実行したときには、これらの関数やグローバル変数を削除したいと思っています。

調べた結果、登録された自作関数の削除には Remove-Item コマンドレットを使用すればよいことがわかりました。

ということで、本当にRemove-Itemコマンドレットを使用すれば関数を削除することができるのかを、実験してみたいと思います。

まずは、下記のように入力して、2つの値を加算する関数Addを作成します。

PS C:\Work> function Add{ $args[0]+$args[1]}

コマンドラインで、dir function: 入力すると関数の一覧を取得できます。

今作成した Add 関数があることがわかります。

PS C:\Work> dir function:

CommandType     Name                                 Definition
-----------     ----                                 ----------
Function        prompt                               'PS ' + $(Get-Location) + $(if ($...
Function        TabExpansion                         ...
Function        Clear-Host                           $spaceType = [System.Management.A...
Function        more                                 param([string[]]$paths);  if(($pa...
Function        help                                 param([string]$Name,[string[]]$Ca...
Function        man                                  param([string]$Name,[string[]]$Ca...
Function        mkdir                                param([string[]]$paths); New-Item...
Function        md                                   param([string[]]$paths); New-Item...
Function        A:                                   Set-Location A:
Function        B:                                   Set-Location B:
:
:長いので省略
:
Function        Add                                  $args[0]+$args[1]

では、実際にRemove-Itemコマンドレットを使用して Add 関数を削除してみたいと思います。

下記のように Remove-Item function:削除する関数名 とします

PS C:\Work> Remove-Item function:Add

本当に削除されたかを確認するために、再度dirコマンドを入力します。

PS C:\Work> dir function:

CommandType     Name                                 Definition
-----------     ----                                 ----------
Function        prompt                               'PS ' + $(Get-Location) + $(if ($...
Function        TabExpansion                         ...
Function        Clear-Host                           $spaceType = [System.Management.A...
Function        more                                 param([string[]]$paths);  if(($pa...
Function        help                                 param([string]$Name,[string[]]$Ca...
Function        man                                  param([string]$Name,[string[]]$Ca...
Function        mkdir                                param([string[]]$paths); New-Item...
Function        md                                   param([string[]]$paths); New-Item...
Function        A:                                   Set-Location A:
Function        B:                                   Set-Location B:
:
:長いので省略
:
Function        Z:                                   Set-Location Z:

このように、Remove-Itemコマンドレットを使用することで 関数を削除することができます。

Tuesday, April 29, 2008 10:52:27 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Comments are closed.

Theme design by Jelle Druyts

Pick a theme: