この記事は
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)
の続きです。
今回は切断処理を行うDisconnect関数を作成しました。
とはいってもSQL*PLUSもどき(関数PSOracle)は非接続型を採用しているため、実際には切断処理は必要ありません。
しかし、PSOracle関数を実行して、動的に登録された関数やグローバル変数をいつまでも残しておくのは気持ち悪いため、Disconnect関数を作成し、それらを削除するようにしてみました。
#========================================================================================= # Disconnect: 切断処理の実施 # # UPDATE: 2008-05-08 # # copyright HIRO's.NET(http://hiros-dot.net/) #========================================================================================= function global:Disconnect { $ret = Read-Host ($OracleConnInfo + " から切断します。よろしいですか?( Y/N )") if ( $ret -eq "N" ) { return } #PSOracle用に登録したグローバル変数を削除 Remove-Item variable:OracleDataSource Remove-Item variable:OracleUserID Remove-Item variable:OraclePassword Remove-Item variable:OracleConnInfo #Oracle専用スクリプトファイルを格納しているディレクトリの設定 $OracleScriptPath = "$([Environment]::GetFolderPath(`"MyDocuments`"))\WindowsPowerShell\Oracle" #存在するパス? if ( Test-Path $OracleScriptPath ) { #PSOracle用に登録された関数の削除(長いので折り返しています。実際には1行) Get-ChildItem $OracleScriptPath -Include "*.ps1" -Recurse -Force | % { Remove-Item ("function:" + [System.IO.Path]::GetFileNameWithoutExtension($_.Fullname)) } } else { #実行可能なスクリプトがない場合は処理終了 return } }
使用方法ですが下記のように関数をコールするだけです。
PS > Disconnect
これで、PSOracle関連の関数は使用することができなくなります。
開発ポイント
変数と関数の削除
変数や関数を削除するにはRemove-Itemコマンドレットを使用します。
変数を削除するには Remove-Item Variable:変数名 とします。
たとえば $OracleDataSouurceを削除する場合は変数の$を取って
PS > Remove-Item variable:OracleDataSource
とします。
関数の削除も同様にして、Remove-Item function:関数名 とします。
PSOracleによって登録された関数のリストをどうやって取得するか悩みました。
登録した関数のリストを取得するいいアイディアが浮かばなかったので、邪道だとは思いましたが、ファイル名=関数名.ps1 としているので、ファイル名から拡張子を取ったものをRemove-Itemコマンドレットで削除するように記述し、関数の削除を行っています。
Theme design by Jelle Druyts
Pick a theme: BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2 BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2
Powered by: newtelligence dasBlog 2.0.7226.0
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
© Copyright 2009, HIRO
E-mail