Я нашел вот такой ответ https://stackoverflow.com/questions/54549573/how-to-ignore-specific-error-in-powershell-when-executing-a-command Но я не понимаю как мне забрать данные в случае успеха
Если гит работает правильно то сообщения об успехе и об ошибке идут в разные аутпуты
то есть такой вариант должен сработать: $stdErr = @() # initialize array for collecting stderr lines. # Capture stdout output while collecting stderr output in $stdErr. $stdOut = cmd /c 'git log --oneline -n 1 test >&2 & exit 1' 2>&1 | Where-Object { $fromStdErr = $_ -is [System.Management.Automation.ErrorRecord] if ($fromStdErr) { $stdErr += $_.ToString() } -not $fromStdErr # only output line if it came from stdout } # Throw an error, with the collected stderr lines included. if ($LASTEXITCODE -ne 0) { Throw "cmd failed with the following message(s): $stdErr" }
Обсуждают сегодня