如果robocopy使用Powershell成功,则重置lastexitcode

时间:2019-07-03 11:09:25

标签: powershell gitlab-ci

我在Gitlab管道的构建步骤中使用robocopy复制文件。管道任务在powershell中执行。

robocopy的退出状态导致我的构建步骤失败。我注意到所有8以下的状态码均有效。意思是如果$lastexitcode$null

,我应该将$lastexitcode重置为< 8

这是我在Powershell脚本中尝试过的:

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

这里的问题是(&{ if...部分在robocopy之前执行。

1 个答案:

答案 0 :(得分:2)

您必须使用两个由;分隔的语句:

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

您尝试将(...)表达式的(在这种情况下为空) output 作为参数传递给robocopy ,并且您已经观察到,作为参数传递的表达式(必须)首先被评估为