[英]For Loop in Windows Batch script
我有一個Windows批處理腳本,每10分鍾調用一次另一個批處理。 我使用了For循環來調用批處理,然后等待10分鍾。
@ECHO OFF
echo %date:~0,10% %time% Running Post To GIM II ...
FOR %%a IN (1,2,3,4,5) DO (
echo %date:~0,10% %time% Starting Post To GIM II ...
CALL D:\Appshares\Autosys\scripts\Sophis\_commonJobWrapper.bat D:\sophis\Client\UBS_PostToGIMII.exe
echo %date:~0,10% %time% Ending Post To GIM II ...
PING -n 600 127.0.0.1 >NUL 2>&1
)
但是內部批處理接受另一個.exe作為參數。 但是內部批處理僅執行一次,然后退出。 內部批處理代碼是這樣的。 誰能說出為什么循環總是在運行1次后退出?
@echo off
REM parameter 1 is the program to be called, parameter 2 onwards are additional optional parameters
REM -- Record Time
echo --- JobWrapper Start : %date% %time% ---
REM -- Set starting folder to where application was called from
cd /d %~dp0
REM -- Set Secure varibales via a securly permissioned file
if exist _CommonBeginSecure.BAT (call _CommonBeginSecure.BAT)
REM -- Debug mode, start message
if "%_senddebug%" NEQ "" cscript.exe /NOLOGO %_sendmail% "%_applic% (%_envname%): Autosys job started - %~nx1" "Logfile: %~n1.out" %_senddebug% %_sendfrom%
REM -- Call program passing thru any parameters (currently maximum of 9)
echo Calling: %1
call %1 %2 %3 %4 %5 %6 %7 %8 %9
REM -- Error Handling
if %errorlevel% NEQ 0 goto error
goto end
:error
REM -- Send Failed Message
if "%_sendto%" NEQ "" cscript.exe /NOLOGO %_sendmail% "%_applic% (%_envname%): Autosys job FAILED - %~nx1" "Logfile: %~n1.out (Errorlevel: %2)" %_sendto% %_sendfrom%
exit 1
:end
REM - Debug mode, end message
if "%_senddebug%" NEQ "" cscript.exe /NOLOGO %_sendmail% "%_applic% (%_envname%): Autosys job finished - %~nx1" "Logfile: %~n1.out" %_senddebug% %_sendfrom%
REM -- Record Time
echo --- JobWrapper End : %date% %time% ---
exit 0
rem - Notes:
rem %0 = Full name of this job
rem %~dp0 = Actual path of this job
rem %~nx0 = Filename of this job
rem %~n0 = Filename of this job (excluding extension)
您需要使用exit /b errorcode
。
Exit
命令,不帶/ b會關閉cmd實例。 使用/ b關閉正在運行的批處理文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.