在Bash中,我可以在DEBUG
信号上使用陷阱来执行任何命令之前的操作,并使用PROMPT_COMMAND
变量来在任何交互式命令之后执行操作。
在Zsh中,我可以分别将preexec
/ preexec_functions
和precmd
/ precmd_functions
用于相同的事情。
在PowerShell中有没有办法做到这一点?
答案 0 :(得分:0)
您可以创建使用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