Start-Job - 在Scriptblock中检查robocopy的$ lastexicode

时间:2014-02-04 15:48:10

标签: powershell robocopy start-job scriptblock

我正在尝试做一些简单的事情。

我想创建一个能够启动副本并检查$ 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之外工作)

有没有人知道我做错了什么?

任何帮助都将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

看到你的评论,猜测你已经找到了成功。如果我引用的链接出现故障,以下是未来读者的答案。基本上我们将start-process命令分配给变量并抛出-passthru标记,以便我们稍后可以轮询.exitcode

$A = Start-Process -FilePath .\my-app\my-fle.bat -Wait -passthru
$A.ExitCode