Сброс lastexitcode, если robocopy успешно выполняется с powershell - PullRequest
1 голос
/ 03 июля 2019

Я использую robocopy для копирования файлов на этапе сборки в конвейере Gitlab.Конвейерные задачи выполняются в powershell.

Состояние выхода robocopy приводит к сбою моего этапа сборки.Я заметил, что все коды статуса до 8 действительны.Это означает, что я должен сбросить $lastexitcode на $null, если $lastexitcode равно < 8

Это то, что я пробовал в своем скрипте powershell:

robocopy src dest /mir (&{if ($lastexitcode -lt 8) { $global:LASTEXITCODE = $null }})

Проблема здесьчто часть (&{ if... выполняется до robocopy.

1 Ответ

2 голосов
/ 03 июля 2019

Вы должны использовать два оператора, разделенных ;:

robocopy src dest /mir; if ($lastexitcode -lt 8) { $global:LASTEXITCODE = $null }

В вашей попытке (в данном случае пусто) выход выражения (...) был передан как аргумент robocopy и, как вы заметили, выражения, переданные в качестве аргументов, (по необходимости) оцениваются first .

...