1

コマンドのすべてのインスタンスをフックして、cd入力を検証し、場合によっては変更します。

$executionContext.SessionState.InvokeCommand.PostCommandLookupAction = {
    param($CommandName, $CommandLookupEventArgs)
    #Only hook cd
    if($CommandLookupEventArgs.CommandOrigin -eq "Runspace" -and $CommandName -eq "cd"){
       //Do modification here
    }
}

cd に渡されたパラメーターを変更するためのアクセスを提供する変数はありますか?

4

1 に答える 1

4

引数を指定するとCommandScriptBlock、そのスクリプトブロック内で利用可能になります。

$ExecutionContext.InvokeCommand.PostCommandLookupAction = {
    param($s,$ea) 
    if ($ea.commandname -eq 'cd') { 
        write-host "Intercpeting CD command"
        $ea.CommandScriptBlock = {Set-Location @args}
        $ea.StopSearch = $true
    } 
}
于 2014-09-20T19:22:44.583 に答える