Hallo, erst einmal alles gute zum 10-jährigen.
Ich habe folgendes Problem, ich möchte Meherere Dateien meines Arbeitgeber aus diveresen Ordnern nach "Zombie-Dateien" durchsuchen.
Hierzu habe ich u.A. folgenden Code geschrieben
"
$dir = "C:/Dokumente und Einstellungen/eisenhutm/Desktop/SDST/TBDs/bwt";
opendir(BIN, $dir) or die "Can't open $dir: $!";
while( defined ($file = readdir BIN) ) {
if($file=~(/.log/)){
print"$file\n";
$datei=$file;
open(FILE,"C:/Dokumente und Einstellungen/eisenhutm/Desktop/SDST/TBDs/bwt/$datei")|| die"FEHLER:$!\n";
print "Datei : $datei\n\n";
print " -----------------------\n\n";
while($zeile=<FILE>){
if($zeile=~(/.bmp|.BMP|.wav|.WAV/)){
[b]====>FEHLER ****[/b] if($zeile=~(/(.*)"(.*)"/)){
$dat=$2;
print "$dat $zeile";
}
}
}
close(FILE);
}
}
closedir(BIN);
"
Das Programm funktioniert soweit auch und gibts u.A. folgende Zeilen aus :
antwb_12.bmp ItemspezifischeWerte"12",12,"aufwb_12.bmp","antwb_12.bmp"),
Quelle: ItemspezifischeWerte"12",12,"aufwb_12.bmp","antwb_12.bmp"),
also die zu löschenden Dateien und den Pfad
==>PROBLEM, einige Dateien haben folgenden Zeilenaufbau
Quelle : ItemspezifischeWerte("1",1,"auftr_01.bmp"," 63"),
so dass das Programm folgendes ausspuckt:
63 ItemspezifischeWerte("1",1,"auftr_01.bmp"," 63"),
d.h. die 63 und nicht "auftr_01.bmp", habe jetzt seit Stunden probiert den Regulären Ausdruck hinzubekommen aber nichts klappt
In Zeile 1 wird die Datei nach den Zeilen durchsucht die bmp oder wav sind, in der Darunter soll dann die zu löschende Datei ausgegeben werden. Wie muss ich in Zeile 2 ==> "(.*)" verändern so dass er nur .bmp und .wav in Anführungszeichen berücksichtigt? Ich krieg es einfach nicht hin... hoffe ihr könnt mir helfen.
Gruß Markus
Zeile 1 :if($zeile=~(/.bmp|.BMP|.wav|.WAV/)){
Zeile 2 :if($zeile=~(/(.*)"(.*)"/)){