2012/01/10

PowerShellを使う試み -6-

PowerShellおもすれー
実行計画をみれたらなと思って、あれこれ探索。
Get-Content C:\Users\MukkuMuku\Documents\showplan.out -Wait
# Ctrl + C で終了
ちょっと見るくらいなら充分かなと。大量になるとちょっと重いのかな。
でもって、profileに仕込んでみる修業。

function prompt() {
    'PS>'
}

function Use-JetShowPlan{
    param ([switch]$off)
    
 $path = 'HKLM:\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Debug'
 $mdoc = [Environment]::GetFolderPath([Environment+SpecialFolder]::MyDocuments)
 $out = 'showplan.out'
 $fullname = Join-Path $mdoc $out

    if ($off) {
        try {
            Set-ItemProperty -Path $path -Name JETSHOWPLAN -Value OFF -ea stop|Out-Null
            '******* Done:OFF *******'
        }
        catch {
            $error[0]
        }
    }else{
        try{
            Set-ItemProperty -Path $path -Name JETSHOWPLAN -Value ON -ea stop|Out-Null
        }
        catch {
            $err = $error[0]
            if ($err.Exception -is [System.Security.SecurityException]){
                "SecurityException"
            }else{
                "なんとかException"
            }
        }
        if ($err -ne $null){
            $err
        }else{
            if (Test-Path $fullname){
                $old = Get-Item $fullname
                if ($old.Length -gt 0) {
                    $stamp = $old.LastWriteTime.ToString("yyyyMMddHHmmss")
                    $old|Copy-Item -Destination (Join-Path $mdoc "SHOWPLAN_$stamp.txt")
                }
                $old|Remove-Item
            }
            New-Item -Path $mdoc -Name $out -Type file|Out-Null
            '******* Done:ON *******'
            '*** Ctrl + C で終了 ***' 
            Get-Content $fullname -wait
        } 
    }
}#function Use-JetShowPlan end
何日か寝かせてから見直すのが得策
FileSystemWatcherとか使う方がいいんじゃろか

0 件のコメント: