【发布时间】:2011-05-16 06:52:49
【问题描述】:
我的 powershell 配置文件有一个自定义的 powershell 提示,不幸的是导致 $lastexitcode 值丢失。例如,给定一个内容为“exit 123”的powershell脚本“fail.ps1”,当我运行该脚本时,$?是 $false 而 $lastexitcode 为 0。如果我运行 powershell 而不使用自定义提示加载我的配置文件,则在运行 fail.ps1 之后 $lastexitcode 为 123。
以前有人见过这个问题吗?有没有办法在生成提示时保留 $lastexitcode ?
我在使用 Posh-git 时遇到了这个问题,https://github.com/dahlbyk/posh-git,一个不错的 git PowerShell 提示符。
【问题讨论】:
-
你的提示是什么样的?
-
如果您怀疑问题出在提示定义中,请在两个提示上使用
(get-item function:prmpt).definition进行比较。 -
有趣,$LastExitCode 应该只受到对本机应用程序的调用的影响。您是从提示符中调用 exe 吗?如果是这样,请使用@dahlbyk 的答案。
-
我在 Windows 8 上的 PowerShell 3 中进行了测试,本机 .EXE 的退出代码被正确保留,无需 dahlbyk 的修复。以前的版本可能会有所不同。
-
是的 bart,posh-git 中的问题已修复。