我有一個調用一個Perl腳本文件中的DOS批處理文件:在DOS批處理文件的Perl腳本返回值
ssutexec.pl prog=MyProg I_CARD=MyCard O_F071=ME007 F70P=MYF70P TRIG=MYTRIG
set status=%errorlevel%
if NOT %status% == 0 (
echo *******************************************************
echo MPSBM070 JOB stopped with a RETURN CODE of %status%
echo ************** END OF JOB *****************************
goto JobEnd
)
裏面的ssutexec.pl Perl腳本文件,則執行出錯條件和腳本退出退出($狀態):
if ($status != 0)
{
system("ssutdttm.pl SSUTEXEC \"finished processing $prog_nam (Abnormal End) on\"") ;
print "******************************************************************" ;
print " JOB STOPPED - Due to Return code of ($status)" ;
print "*****************END OF JOB***************************************" ;
system("ssutdttm.pl SSUTEXEC \"finished processing $prog_nam (Abnormal End) on\"") ;
system("ssuttmdr.pl -c -b $starttime -m \"$prog_nam\"") ;
exit($status) ;
}
我不是一個perl腳本的傢伙。 Errorlevel沒有被觸發,所以我沒有收到錯誤。如何在我的DOS批處理文件中捕獲perl腳本退出代碼的值?
INDLUDING編輯: 新的批處理文件看起來是這樣的:
@echo off
setlocal enabledelayedexpansion
if not defined run_env goto ScriptExit
echo ******************************************************************
echo * MYPROG *
echo ******************************************************************
perl ssutdttm.pl MYPROG Start -
perl ssutexec.pl prog=MyProg I_CARD=MyCard O_F071=ME007 F70P=MYF70P TRIG=MYTRIG
set status=!errorlevel!
if NOT %status% == 0 (
echo *******************************************************
echo MYPROG JOB stopped with a RETURN CODE of %status%
echo ************** END OF JOB *****************************
goto JobEnd
)
:JobEnd
if %status% == 0 (
echo *******************************************************
echo NORMAL END OF JOB - RETURN CODE of %status%
echo ******** NORMAL END OF JOB ****************************
) ELSE (
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
echo ABNORMAL END OF JOB - RETURN CODE of %status%
echo !!!!!! ABNORMAL END OF JOB !!!!!!!!!!!!!!!!!!!!!!!!!!!!
)
ssutdttm.pl MYPROG end -
exit /b %status%
::
:ScriptExit
echo run_env: %run_env%
是
我和我的兩個非常簡單的測試腳本你確定'$ status'被設置爲一個非零的值你在Perl腳本中? –
@Jonah ...是的,代碼中的打印語句輸出值爲44 – MikeTWebb
@MikeTWebb在退出之前最後兩個system()調用之後,$ status的值是多少? –