我正在通过Perl Tk界面中的按钮执行脚本。当单击执行按钮时,我调用为该进程创建的.bat文件。但问题是我已经在.bat文件中添加了代码以返回脚本运行所用的时间,因为我想在界面中显示它。但是我没有在接口调用的cmd中得到它,那个时间在.bat文件的cmd中得到回应,但它不会出现在tk perl脚本的cmd中。
PFB .bat文件的代码:
@echo off
setlocal EnableDelayedExpansion
set "startTime=%time: =0%"
wperl D:\A\A_Script.pl
set "endTime=%time: =0%"
rem Get elapsed time:
set "end=!endTime:%time:~8,1%=%%100)*100+1!" & set "start=!startTime:%time:~8,1%=%%100)*100+1!"
set /A "elap=((((10!end:%time:~2,1%=%%100)*60+1!%%100)-((((10!start:%time:~2,1%=%%100)*60+1!%%100)"
rem Convert elapsed time to HH:MM:SS:CC format:
set /A "cc=elap%%100+100,elap/=100,ss=elap%%60+100,elap/=60,mm=elap%%60+100,hh=elap/60+100"
echo Elapsed: %hh:~1%%time:~2,1%%mm:~1%%time:~2,1%%ss:~1%%time:~8,1%%cc:~1%
exit;
我称之为.bat文件的子是:
sub Execute{
my $batFileLocation = shift;
print "Comes here for $batFileLocation";
$Output = `$batFileLocation`;
print "Output Value: $Output";
}
现在控件出现在Execute的行中,但我也从批处理文件中获取Perl脚本粗略的时间。
提前致谢。