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

Die*_*erg 3 powershell gitlab-ci

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

的退出状态robocopy导致我的构建步骤失败。我注意到所有低于 8 的状态码都是有效的。意思是我应该重置$lastexitcode$null如果$lastexitcode< 8

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

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

这里的问题是该(&{ if...部分是在robocopy.

mkl*_*nt0 6

您必须使用两个语句,用 分隔;

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

在您的尝试中,表达式的(在本例中为空)输出(...)作为参数robocopy传递给 ,并且正如您所观察到的,作为参数传递的表达式首先(必须)求值。