在交互式命令之前和/或之后执行事项



在bash中,我可以在 DEBUG信号上使用陷阱在任何命令之前执行事物,而 PROMPT_COMMAND变量可在任何交互式命令之后执行内容。

在ZSH中,我可以分别使用preexec/preexec_functionsprecmd/precmd_functions进行相同的事情。

有没有办法在PowerShell中做到这一点?

您可以创建一个使用Invoke-command或其他方式的函数:

Function Invoke-Debug {
    [CmdletBinding()]
    Param (
        [Parameter(Mandatory)
        [Scriptblock[]]$Scriptblock
    )
    Before {
        #Before all code
    }
    Process {
        ForEach ($SB in $Scriptblock) {
            #Before each code
            Invoke-Command -Scriptblock $SB
            #After each code
        }
    }
    End {
        #After all code
    }
}

您也可以做很多其他方法。

这样,您是否运行这样的命令:

Invoke-Debug -Scriptblock {#Your code here}

或:

$Scriptblock = {#Your code here}
Invoke-Debug -Scriptblock $Scriptblock

最新更新