start -job-在ScriptBlock中检查$ tastexicode



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

我想创建一个可以启动副本并检查$ lastExitCode的Robocopy作业。

$Source = "c:SourceFolder"
$Destination "\someserverDestinationfolder"
$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之外工作)

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

任何帮助将不胜感激。

谢谢!

请参阅您的评论,猜测您已经找到了成功。如果我引用的链接下降,这是未来读者的答案。基本上,我们将Start-Process命令分配给变量并抛出-passthru标签,因此我们可以稍后对.exitcode进行轮询。

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

相关内容

  • 没有找到相关文章

最新更新