2014-11-14 1 views
1

가끔 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:\> 
+0

짧은 대답 : 아니요 – Paul

+0

이것은 대화 형 PowerShell의 훌륭한 기능입니다. 유사한 Python 대화 형 변수'_'가 매우 유용하다는 것을 알았습니다. * "[Python] 대화식 모드에서는 마지막으로 인쇄 된 표현식이 변수 _에 할당됩니다."* [Informal Introduction to Python] (https://docs.python.org/3/tutorial/introduction.html) - 검색 "마지막으로 인쇄 된 표현"에 대한 페이지 –

답변

4

나는 이것이 당신이 찾고 있던 것과 정확히 같지는 않다고 생각하지만 흥미로울 것입니다. Stuffing the output of the last command into an automatic variable (get-powershell.com). Andy Schneider가 게시 한 솔루션으로 "// \/// //"및 Joel의 의견에서 영감을 얻었습니다. 다음은 연결된 기사에서 코드를 잘라내어 "기본값보다 우선 적용"이고 $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 } 
+3

사실 Tanner, 나는 이것이 사용자의 질문에 대한 훌륭한 해결책이라고 생각합니다. 링크 전용 답변은 권장되지 않습니다. 링크가 내려 가기 때문에 실제 기능과 간단한 설명을 복사해야합니다. – TheMadTechnician

+0

실제로 매우 흥미 롭습니다. 성능이 좋지 않지만 dev 환경에서는 제공된 기능에 대한 공정한 절충이 필요합니다. – Paul

0

현재 WMF 5.1에서는 Out-Default이 다른 네임 스페이스에있는 것 같습니다.

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