Сценарий Powershell завершается, но завершается с кодом ошибки 1 - PullRequest
0 голосов
/ 15 мая 2019
$myValue= (.\command.exe arguments | select -first 1)

Я запускаю приведенный выше код в своем конвейере Azure Devops, $myValue содержит ожидаемое мной значение, но я получаю:

##[error]PowerShell exited with code '1'.

возвращается после завершения моей задачи ...Кто-нибудь есть идеи, почему?Я не знаю, является ли это синтаксической проблемой, или мой command.exe делает что-то странное, чтобы повлиять на код выхода.

1 Ответ

1 голос
/ 16 мая 2019

Не видя весь сценарий, я предполагаю, что это связано с известной проблемой с 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

Вы можете игнорировать любые ошибки, используя $Error.HResult -eq -2146233087 в качестве обходного пути.

...