Powershell 脚本完成但退出并显示错误代码 1

Con*_*nor 5 powershell azure-devops

$myValue= (.\command.exe arguments | select -first 1)
Run Code Online (Sandbox Code Playgroud)

我在 Azure Devops 管道中运行上述代码, $myValue包含我期望的值,但我得到:

##[error]PowerShell exited with code '1'.
Run Code Online (Sandbox Code Playgroud)

我的任务完成后返回...有人知道为什么吗?我不知道这是否是一个语法问题,或者我是否command.exe做了一些奇怪的事情来影响退出代码。

小智 5

将其放在脚本末尾可以防止出现错误消息:

出口0

感谢 Maximilian Burszley 在评论中的评论


Ric*_*oss 4

如果没有看到整个脚本,我会猜测这是由于Powershell 的一个已知问题Select -First造成的:即使成功也会填充 ErrorVariable。它可以用以下代码重现:

PS > 1..2 | Select -First 2 -ErrorVariable X; $X | select *
 1
 2

RequestingCommandProcessor : Select-Object
 Message : System error.
 Data : {}
 InnerException :
 TargetSite : Void ProcessRecord()
 StackTrace : at Microsoft.PowerShell.Commands.SelectObjectCommand.ProcessRecord()
 at System.Management.Automation.CommandProcessor.ProcessRecord()
 HelpLink :
 Source : Microsoft.PowerShell.Commands.Utility
 HResult : -2146233087
Run Code Online (Sandbox Code Playgroud)

$Error.HResult -eq -2146233087作为解决方法,您可以忽略任何错误。