Thanks for all the help now it works
use strict;
use warnings;
my $returncode;
$returncode = 0;
open (my $IN,"<E:/scripts/eva/allupdates.log") || die "can not open da
+tei: $!";
#regex für Datumsanalyse matcht auf Datum z.B. 30.11.2010
my $redate='((?:(?:[0-2]?\\d{1})|(?:[3][0,1]{1}))[-:\\/.](?:[0]?[1-9]|
+[1][012])[-:\\/.](?:(?:[1]{1}\\d{1}\\d{1}\\d{1})|(?:[2]{1}\\d{3})))(?
+![\\d])'; # DDMMYYYY 1
#Datumsbestimmung tatsächliches Datum:
(my $sec, my $min, my $hour, my $mday,my $mon, my $year, my $wday, my
+$ydat, my $isdst)=localtime();
my $jahr=$year;
my $monat=$mon+1;
my $tag=$mday;
$jahr=$year;
$jahr=$year +1900;
if (length($monat) == 1)
{
$monat="0$monat";
}
if(length($tag) == 1)
{
$tag="0$tag";
}
if(length($hour) == 1)
{
$hour="0$hour";
}
if(length($min) == 1)
{
$min="0$min";
}
if(length($sec) == 1)
{
$sec="0$sec";
}
my $Xdatum=$tag.".".$monat.".".$jahr;
my $Xzeit=$hour.":".$min.":".$sec;
#$Xdatum="$jahr$monat$tag";
#$Xzeit="$hour$min$sec";
#print $Xdatum." ".$Xzeit;
#Datum im Logfile evawp.log
my $datelogfile;
#Vergleich Datum in Logdatei mit Systemdatum, wenn dies gleich ist, ok
+, $redate matcht auf Datumsstring, der 1. String ist das Datum ...
while(<$IN>){
if( /($redate)(\s+).*?(Ende)/i){
print " ,1. Variable $1\n";
$datelogfile = $1;
print " Datelogfile $datelogfile\n";
print " Var Xdatum $Xdatum\n";
if ( $datelogfile eq $Xdatum)
{ print " Variable datelogfile $datelogfile\n";
$returncode++; }
print;
print "$returncode\n";
}
}
#wenn error nicht gefunden wurde dann auch die Datei nicht öffnen zum
+schreiben ...
#für jeden Fund wird returncode um 1 erhöht ...
if ( $returncode == 1 ){
print "Update TS ok!\n";
}
#Wenn Returncode 0 ist der String nicht gefunden, dann Fehler ...
if ( $returncode <= 0 ){
print "Update TS FEHLER!\n";
}
#print "$returncode\n";
close $IN;
#print "$datelogfile \n";
system("pause");
|