1. 目录截图
2. 执行目录截图
3. perl 脚本代码
#!perl -w
use strict;
use Data::Dumper;
use File::Basename;
my $BinPath = (map{s#\n##g;$_} `cd`)[0];
$BinPath .= "\\";
my $MysqlClient = "${BinPath}mysql.exe";
my $OriSQLFilePath = "${BinPath}UElogCompare_back.sql";
my $USESQLFilePath = "${BinPath}UElogCompare.sql";
my $OutPutDir = "${BinPath}../result/";
$OutPutDir =~ s#\\#/#g;
##########################
my $OriSQLFileHandle;
my $USESQLFileHandle;
&main();
sub main()
{
&ProcessADir();
}
sub ProcessADir(){
my @AllFiles = <..\\data\\*>;
my @AProcessFiles = grep {m/csv$/ && !m$~$} @AllFiles;
my $AFile;
foreach $AFile (@AProcessFiles)
{
print "\nProcess $AFile \n";
&ProcessAFile($BinPath.$AFile);
}
}
sub ProcessAFile(){
my $InFilePath = shift @_;
$InFilePath =~ s#\\#/#g;
my $OutFilePath = basename($InFilePath);
$OutFilePath = $OutPutDir.$OutFilePath;
open ($OriSQLFileHandle,"<",$OriSQLFilePath) or die "can not find file: $OriSQLFilePath,for $!\n";
open ($USESQLFileHandle,">",$USESQLFilePath) or die "can not find file: $USESQLFilePath,for $!\n";
my $Line;
while(defined ($Line=<$OriSQLFileHandle>)){
$Line =~ s#UELOGFILEPATH#$InFilePath#;
$Line =~s#OUTPUTFILEPATH#$OutFilePath#;
#print $USESQLFileHandle,encode("gb2312",$Line);
print $USESQLFileHandle $Line;
}
my $ExecSQL = " $MysqlClient -uroot <$USESQLFilePath >>setup.log 2>&1";
print "$ExecSQL \n";
`$ExecSQL`;
}