Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 开始作业-检查Scriptblock中robocopy的$lastexicode_Powershell_Robocopy_Start Job_Scriptblock - Fatal编程技术网

Powershell 开始作业-检查Scriptblock中robocopy的$lastexicode

Powershell 开始作业-检查Scriptblock中robocopy的$lastexicode,powershell,robocopy,start-job,scriptblock,Powershell,Robocopy,Start Job,Scriptblock,我想做一些简单的事情 我想创建一个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

我想做一些简单的事情

我想创建一个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,即使拷贝正常。 此外,该函数未执行(它在scriptblock之外工作)

有人知道我做错了什么吗

任何帮助都将不胜感激


谢谢

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

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

为什么不直接使用启动过程呢?e、 g.$robocopy=启动流程robocopy-argumentlist-passthru。这将返回一个具有HasExitd和ExitCode属性的流程对象,您可以检查它是否已完成以及退出代码是什么。下面是我如何从开始流程开始执行lastexitcode-嗨,首先感谢您的帮助!我曾尝试使用Knuckle Dragger显示的启动过程,但返回的退出代码始终为1。。。即使副本有效。我一定错过了什么。不,它工作得很好!ExitCode 0=没有错误,没有复制文件,因此ExitCode 1实际上是一件好事。ExitCode 1=无错误,已复制新文件。ExitCode>1=出现错误,或者至少出现意外结果。哦,好的,谢谢您的帮助:)非常感谢!