自动将命令输出分配给 Powershell 中的变量

Sta*_*dem 5 powershell

是否有将所有命令封装在 Powershell 会话中的技巧,以便将所有输出都发送到临时变量?

我输入命令时出现问题 Some-Function

我完全了解像这样的命令Tee-Object-OutVariable它允许我将函数的输出通过管道传输到变量和控制台。我可以通过以下方式实现我的目标:

Some-Function | Tee-Object -Variable PSMyCustomTempVariable

但是,我经常不知道或预期我是否需要该变量,直到我已经运行了 run 之后Some-Function。在这种情况下,最好有一个包含最后一个函数输出的变量。这对于像递归文件搜索这样需要一段时间才能运行的函数特别有用。

我看过about_Logging以及Start-Transcript,但这些似乎与将文本记录到文件有关;我需要函数返回的对象。

那么,有没有办法修改我的会话,以便任何 Powershell 命令Some-Function基本上变成Some-Function | Tee-Object -Variable PSMyCustomTempVariable

Jef*_*lin 5

不完全是。然而,

$Variable = (Some-Function)
Run Code Online (Sandbox Code Playgroud)

将 的输出保存Some-Function在变量中$Variable,然后允许您操作数据或稍后将其传递给其他函数。完成相当于

Some-Function | Tee-Object -Variable $Variable
Run Code Online (Sandbox Code Playgroud)

它将获取 的输出Some-Function,将其保存在 中$variable然后通过管道将其传递给下一个命令,您可以使用

$variable = (Some-Function)
$variable
Run Code Online (Sandbox Code Playgroud)

(或$variable | Next-Command),并完成您似乎想要的。