我在Gitlab管道的构建步骤中使用robocopy
复制文件。管道任务在powershell中执行。
robocopy
的退出状态导致我的构建步骤失败。我注意到所有8以下的状态码均有效。意思是如果$lastexitcode
为$null
$lastexitcode
重置为< 8
这是我在Powershell脚本中尝试过的:
robocopy src dest /mir (&{if ($lastexitcode -lt 8) { $global:LASTEXITCODE = $null }})
这里的问题是(&{ if...
部分在robocopy
之前执行。
答案 0 :(得分:2)
您必须使用两个由;
分隔的语句:
robocopy src dest /mir; if ($lastexitcode -lt 8) { $global:LASTEXITCODE = $null }
您尝试将(...)
表达式的(在这种情况下为空) output 作为参数传递给robocopy
,并且您已经观察到,作为参数传递的表达式(必须)首先被评估为 。