如何在powershell脚本中执行时从批处理文件中捕获最后的退出代码?

时间:2017-11-18 06:14:36

标签: powershell batch-file

由于批处理没有任何远程处理功能。我在Invoke-command脚本块中执行批处理文件。但是,如果批处理文件返回%errorlevel%而不是0,我如何捕获该值并将其传递给powershell以提高execption?我尝试使用下面两行代码并没有找到任何运气。作为一种解决方法,我添加了echo%errorlevel%> C:/out.txt,从powershell我们可以读取这个值并抛出一个错误,如果它不是0.是否有任何有效的方法来实现这一点?我必须在jenkins中执行这个脚本。是否有批处理中的命令等同于用于远程处理的invoke-command?任何帮助将不胜感激。

Invoke-Command -ComputerName $server -Credential $cred -ScriptBlock {
param ($server,$source_dir,$processing_dir,$user,$Password)
whoami
echo "$source_dir"
$command="M:\script_test\file1.bat"
cmd /C $Command
$out = cmd /C echo %errorlevel%
echo $out

批处理文件: 这是我在file1.bat中的批处理命令。我需要做哪些更改才能使%errorlevel%传递给$ lastexitcode?此命令会引发1或9009值失败。

D:\EDX_CMD\QMSEDX_CommandLine\QMSEDX.exe -task="reload.qvw" -verbosity=5 -password=###### -timeout=800 
echo %errorlevel% > M:\script_test\out.txt 

0 个答案:

没有答案