我正在尝试做一些简单的事情。
我想创建一个可以启动副本并检查$ 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