Bat文件返回perl脚本STDOUT输出,也在BAT文件中调用

时间:2017-09-14 07:29:32

标签: perl batch-file

我正在通过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脚本粗略的时间。

提前致谢。

0 个答案:

没有答案