0

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

我想创建一个 robocopy 作业来启动副本并检查 $lastexitcode。

$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 - 即使副本有效。此外,该函数未执行(它在脚本块之外工作)

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

任何帮助,将不胜感激。

谢谢 !

4

1 回答 1

0

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

$A = Start-Process -FilePath .\my-app\my-fle.bat -Wait -passthru
$A.ExitCode
于 2014-02-05T09:45:15.360 回答