我有一个bat脚本,我正在尝试捕获其中每个功能的处理时间。我有两个其他bat脚本捕获开始时间和结束时间但是当我尝试将这些变量传递回主脚本时,它不起作用。请指教
TRIGGER.bat
if exist "inProcess.lok". (
exit
) else (
if EXIST "some.ZIP". (
call startTime.bat
set /a startDel=%1
::some Process
call endTime.bat
set /a endDel=%2
set /a timeDel= ( %endDel% - %startDel% )
set /a timeDels= %timeDel% / 100
set timeDel=%timeDels%.%timeDel:~-2%
echo %timeDel%
echo %timeDel%
echo %timeDel%
pause
))
startTime.BAT
set starttime=%TIME%
set startcsec=%STARTTIME:~9,2%
set startsecs=%STARTTIME:~6,2%
set startmins=%STARTTIME:~3,2%
set starthour=%STARTTIME:~0,2%
set /a starttime=(%starthour%*60*60*100)+(%startmins%*60*100)+(%startsecs%*100)+(%startcsec%)
:trigger.bat %starttime%
endTime.Bat
set endtime=%time%
set endcsec=%endTIME:~9,2%
set endsecs=%endTIME:~6,2%
set endmins=%endTIME:~3,2%
set endhour=%endTIME:~0,2%
if %endhour% LSS %starthour% set /a endhour+=24
set /a endtime=(%endhour%*60*60*100)+(%endmins%*60*100)+(%endsecs%*100)+(%endcsec%)
:trigger.bat %endtime%
答案 0 :(得分:0)
以随机方式使用call
,标签和参数。这不会奏效。
这是一个非常基本的例子,说明它是如何工作的(没有参数,只是使用变量,就像Joey在评论中建议的那样)
Trigger.bat:
set starttime=dummy
set endtime=dummy
call starttime.bat
call endtime.bat
echo %starttime% %endtime%
starttime.bat:
set starttime=hello
endtime.bat:
set endtime=world