获取最后返回的对象

时间:2014-11-14 18:12:57

标签: powershell

有时我会执行PowerShell命令而忘记将其返回值/对象存储在变量中。 PowerShell是否将最后一个命令的返回对象存储在我可以访问的变量中?

PS C:\> Get-ChildItem 
... 
PS C:\> # Oh no, I forgot to assign the output to a variable
PS C:\> $a = Get-ChildItem
PS C:\> 

2 个答案:

答案 0 :(得分:4)

我确定这不是你想要的,但你可能会发现它很有趣。 Stuffing the output of the last command into an automatic variable(get-powershell.com)。解决方案由Andy Schneider发布,其灵感来自" // \ o //"和乔尔。这是从链接文章剪切到"覆盖默认" 的代码,并将结果存储在全局变量$lastobject中。

function out-default {
  $input | Tee-Object -var global:lastobject | 
  Microsoft.PowerShell.Utility\out-default
}

# In case you are using custom formatting
# You will need to override the format-* cmdlets and then
# add this to your prompt function

if($LastFormat){$LastOut=$LastFormat; $LastFormat=$Null }

答案 1 :(得分:0)

目前在WMF 5.1上,看起来Out-Default位于不同的名称空间中。

function Out-Default {
    $Input | Tee-Object -Var Global:LastOutput |
        Microsoft.PowerShell.Core\Out-Default
}