我正在尝试做一些简单的事情。
我想创建一个能够启动副本并检查$ lastexitcode的robocopy作业。
$Source = "c:\SourceFolder"
$Destination "\\someserver\Destinationfolder"
$ScriptBlock = [scriptblock]::Create("robocopy $Source $Destination /MOVE /E /R:5 /E /W:5 /A-:SH; if ( $lastexitcode -gt 8) { LOGMESSAGE ERROR } else { LOGMESSAGE SUCCESS }")
start-job -scriptblock $ScriptBlock
LOGMESSAGE是我编写的一个函数,它会记录事件并在发生错误时发送邮件。
不知何故,$ lastexitcode值总是返回到16 - 即使副本有效。 此外,该函数未执行(它在scriptblock之外工作)
有没有人知道我做错了什么?
任何帮助都将不胜感激。
谢谢!
答案 0 :(得分:0)
看到你的评论,猜测你已经找到了成功。如果我引用的链接出现故障,以下是未来读者的答案。基本上我们将start-process命令分配给变量并抛出-passthru
标记,以便我们稍后可以轮询.exitcode
。
$A = Start-Process -FilePath .\my-app\my-fle.bat -Wait -passthru
$A.ExitCode