gpt4 book ai didi

powershell:发生错误时如何打印总调用堆栈?

转载 作者:行者123 更新时间:2023-12-04 17:27:57 25 4
gpt4 key购买 nike

假设我有以下代码,当错误发生时,我想看到错误首先发生在函数b上,然后发生在函数a上的错误。但实际上它只告诉我错误发生在函数a,因为函数a可以被多次调用,我不知道哪个外部函数调用函数a导致了问题

cls  
function a{
Remove-Item "not-exist-item"
}
function b{
a
}
b

Remove-Item : Cannot find path 'C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\not-exis
t-item' because it does not exist.
At C:\Users\Daniel.Wu\AppData\Local\Temp\2\a.ps1:***3 char:14***
+ Remove-Item <<<< "not-exist-item"
+ CategoryInfo : ObjectNotFound: (C:\Program File...\not-exist-item:String) [Remove-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand

最佳答案

如果您使用的是 PowerShell v2.0,请使用 Get-PSCallStack .如果您仍在使用 v1,请使用如下函数:

function Get-CallStack {
trap { continue }
1..100 | foreach {
$var = Get-Variable -scope $_ MyInvocation
$var.Value.PositionMessage -replace "`n"
}
}

关于powershell:发生错误时如何打印总调用堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4753988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com