Powershell 自定义退出代码说明

Powershell Custom Exit Code Description

我可以通过退出代码退出 powershell 应用程序:

exit 59

如何使用自定义退出代码说明退出?

exit 59, "Somethings Wrong"

你不能。在 PowerShell 环境中,cmdlet 可以 return 任何 .Net 对象(字符串、异常等)彼此,但是当您 exit 时,PowerShell 进程退出,并且它可以 return to Windows /调用进程是一个整数。

https://en.wikipedia.org/wiki/Exit_status#Windows

没有地方可以放置自定义描述,其他任何东西也没有办法获得描述。那是多年的遗留计算和向后兼容性限制,回到处理器很小、内存昂贵且 return 值是(我推测)一个处理器寄存器值或类似值的时候。

当您在命令提示符下并且运行这些命令时:

c:\> powershell
Windows PowerShell
Copyright (C) 2014 Microsoft Corporation. All rights reserved.

PS C:\> exit 10

c:\> echo %ERRORLEVEL%
10

您看到 PowerShell 进程以 return 值为 10 退出。但是没有 %ERRORDESCRIPTION% 或类似的标准功能来放置其他任何东西。你想做的事情没有较低级别的机器。

您可以做的是使用 Write-Error 写入标准错误输出 (stderr),如果程序调用您的脚本并捕获 stderr 输出,它可以读取它。或者您可以将错误写入事件日志或日志文件。

但是任何这些写入都必须在您的进程处于 运行ning 时进行,因为在您的进程退出后您将无法执行任何操作。