在 Set-PSBreakpoint 的操作块中记录当前执行的命令
Logging the current executing command within the Action Block for Set-PSBreakpoint
我在我的 powershell 会话中为每个“Get*”附加了一个命令断点。此命令断点涉及调用一个操作,该操作调用 Write-Host“我们被困在这段代码中”。如下所示
例如
PS /Users/test> Set-PSBreakpoint -Command "Get*" -Action {
>> Write-Host "We are trapped in this code"
>> }
ID Script Line Command Variable Action
-- ------ ---- ------- -------- ------
1 Get* …
PS /Users/test> Get-Runspace
We are trapped in this code
Id Name ComputerName Type State Availability
-- ---- ------------ ---- ----- ------------
1 Runspace1 localhost Local Opened Busy
PS /Users/test>
现在不用打印
We are trapped in this code
我们要打印
We are trapped in this code: Get-Runspace
在此特别是我们要打印命令即。 Get-Runspace 应用了断点。
有什么方法可以在 ScriptBlock 中获取执行命令。
PS: 我们已经在脚本块中尝试了 $MyInvocation.MyCommand.Name 并且各种其他方法,但所有方法 return null.
假设您对触发断点的命令行感兴趣,请使用$MyInvocation.Line
:
Set-PSBreakpoint -Command "Get-conten*" -Action {
Write-Host "We are trapped in this code: $($MyInvocation.Line)"
}
如果您想检查自动 $MyInvocation
变量的具体值(它是类型 System.Management.Automation.InvocationInfo
), pipe it to the Out-Host
cmdlet 的一个实例:
Set-PSBreakpoint -Command "Get-conten*" -Action {
$MyInvocation | Out-Host
}
我在我的 powershell 会话中为每个“Get*”附加了一个命令断点。此命令断点涉及调用一个操作,该操作调用 Write-Host“我们被困在这段代码中”。如下所示
例如
PS /Users/test> Set-PSBreakpoint -Command "Get*" -Action {
>> Write-Host "We are trapped in this code"
>> }
ID Script Line Command Variable Action
-- ------ ---- ------- -------- ------
1 Get* …
PS /Users/test> Get-Runspace
We are trapped in this code
Id Name ComputerName Type State Availability
-- ---- ------------ ---- ----- ------------
1 Runspace1 localhost Local Opened Busy
PS /Users/test>
现在不用打印
We are trapped in this code
我们要打印
We are trapped in this code: Get-Runspace
在此特别是我们要打印命令即。 Get-Runspace 应用了断点。 有什么方法可以在 ScriptBlock 中获取执行命令。
PS: 我们已经在脚本块中尝试了 $MyInvocation.MyCommand.Name 并且各种其他方法,但所有方法 return null.
假设您对触发断点的命令行感兴趣,请使用$MyInvocation.Line
:
Set-PSBreakpoint -Command "Get-conten*" -Action {
Write-Host "We are trapped in this code: $($MyInvocation.Line)"
}
如果您想检查自动 $MyInvocation
变量的具体值(它是类型 System.Management.Automation.InvocationInfo
), pipe it to the Out-Host
cmdlet 的一个实例:
Set-PSBreakpoint -Command "Get-conten*" -Action {
$MyInvocation | Out-Host
}