gpt4 book ai didi

powershell - Powershell 脚本中哪些行返回输出?

转载 作者:行者123 更新时间:2023-12-02 06:41:34 25 4
gpt4 key购买 nike

一般来说,是否有一种方便的方法来确定 PowerShell 脚本/函数的哪些行正在返回值(“未捕获”)?我希望有一种方法可以在调试时查询待返回值的当前状态。我可以在每一行之后检查它,看看添加了哪些行。

我有一些脚本在工作,有些行正在将我的返回值转换为 Object[]。我通常将此类行通过管道传输到 Out-Null 以解决此问题。我只想返回一个对象(我在函数末尾选择的那个)。

有些行是 Cmdlet 调用,有些是对其他函数的调用,有些是对 .NET 对象的函数调用。

最佳答案

我想您可以使用 Set-PsDebug -trace 1 查看返回它们的行。

例子:

考虑下面的脚本:

function f{
1..10
}

function g{
f
return 11
}

g

执行 Set-PsDebug -trace 1 后,跟踪将如下所示:

DEBUG:    1+  <<<< .\test.ps1
DEBUG: 1+ function f <<<< {
DEBUG: 5+ function g <<<< {
DEBUG: 10+ <<<< g
DEBUG: 6+ <<<< f
DEBUG: 2+ 1.. <<<< 10
1
2
3
4
5
6
7
8
9
10
DEBUG: 7+ return <<<< 11
11

很明显,您可以看到输出的来源。但是如果输出被捕获,你就不会得到这个。

此外,如果您不关心正在返回的其他对象,只想获取您使用 return 语句返回的最后一个对象,您可以随时执行类似 (func)[-1]func |选择 -last 1(如评论中指出的那样)以获取最后一个。

关于powershell - Powershell 脚本中哪些行返回输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7002558/

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