是否有将所有命令封装在 Powershell session 中的技巧,以便 全部 输出是 tee'd 到一个临时变量?
当我输入命令时出现问题 Some-Function
我完全了解像 Tee-Object
这样的命令和 -OutVariable
这允许我将函数的输出通过管道传输到变量以及控制台。我可以通过以下方式实现我的目标:Some-Function | Tee-Object -Variable PSMyCustomTempVariable
然而,我经常不知道或预期我是否需要这个变量,直到我已经运行了 Some-Function
.在这种情况下,最好有一个包含最后一个函数输出的变量。这对于像递归文件搜索这样需要一段时间才能运行的函数特别有用。
我看过 about_Logging以及 Start-Transcript ,但这些似乎与将文本记录到文件有关;我需要函数返回的对象。
那么,有什么方法可以修改我的 session ,以便任何 Powershell 命令 Some-Function
基本上变成Some-Function | Tee-Object -Variable PSMyCustomTempVariable
?
最佳答案
不完全是。然而,
$Variable = (Some-Function)
将保存
Some-Function
的输出在变量 $Variable
中, 然后允许您操作数据或稍后将其传递给其他函数。完成相当于Some-Function | Tee-Object -Variable $Variable
这将采用
Some-Function
的输出, 保存在 $variable
,并将其通过管道传递到下一个命令,您可以使用$variable = (Some-Function)
$variable
(或
$variable | Next-Command
),并完成您似乎想要的。
关于powershell - 自动将命令输出分配给 Powershell 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49179697/