#!/bin/perl use strict; my $linecounter=1; my $start; my $end; my @input; my ($ss,$mm,$hh,$dd,$mon,$yy,$we,$doy,$st)=localtime; ######################################################## ## SET OUTPUT DIRECTORY HERE ## ######################################################## my $output_dir = 'd:\kunden'; # output verzeichnis ######################################################## ## SET INPUT DIRECTORY HERE ## ######################################################## print "Dateien gefunden:\n"; foreach () { # input verzeichnis print "$_\n"; } my $i=1; foreach () { # input verzeichnis print "Bearbeite $_\n"; open AA, "<$_"; my @input_one=; close AA; my $datum=sprintf("%04d-%02d-%02d",$yy+1900,$mon+1,$dd); `ren $_ done.$i.$datum.txt`; @input=(@input,@input_one); $i++; } foreach my $line (@input) { $start = $linecounter-18 if ($line =~ /SSSSSSSSSS TTTTTTTTTTTT AAAAAAAAAA RRRRRRRRRRR TTTTTTTTTTTT/); $end = $linecounter+17 if ($line =~ /EEEEEEEEEEEE N NN DDDDDDDDDDD/); if ($end) { my $filename; my @new_file; print "$start, $end, "; foreach (@input[$start .. $end]) { if ($filename eq "") { ($filename) = $_ =~ /[ a-z]* ([BK|MKL|MKL#]*[0-9]{4}).*/i; $filename =~ s/#//; } push @new_file, $_; } # Dateiname um Programm ergänzen print "PROGRAMM: "; my $programm; foreach (@new_file) { if ($_ =~ /PROGRAMM.*/) { chomp; # PROGRAMM : KW375 / 007 # BK8716_KW375-007.txt, BK7822_BOSS-BC202.txt, BK7822_KW375-007.txt, MKL7822_BOSS-BC352.txt $_ =~ s/\//-/; ($programm) = $_ =~ /PROGRAMM.*:(.*)/; $programm =~ s/ //g; print "$programm\n"; last; } } my $completefile=$filename . "_" . $programm . ".txt"; print "$output_dir\\$completefile\n"; open OUT, ">$output_dir\\$completefile"; print OUT @new_file; close OUT; $end=0; } $linecounter++; } # Dateien in Kundenverzeichnisse kopieren # my %kvs; my %dirs; ######################################################## ## DO EDIT FROM HERE ## ######################################################## $dirs{'ICF'} = 'd:\kunden\icf\file'; $dirs{'KOCH'} = 'd:\kunden\koch\file'; $dirs{'GRUETZNER'} = 'd:\kunden\gruetzner\file'; $dirs{'TRITRADE'} = 'd:\kunden\tritrade\file'; $dirs{'LUDWIG'} = 'd:\kunden\ludwig\file'; $dirs{'BRAUBURGER'} = 'd:\kunden\icf\file'; $dirs{'KRAUL'} = 'd:\kunden\kraul\mail'; $dirs{'EMPORIUM'} = 'd:\kunden\emporium\mail'; $dirs{'THERMER'} = 'd:\kunden\thermer\mail'; $dirs{'BELGER'} = 'd:\kunden\belger\mail'; $kvs{'3800'}='ICF'; $kvs{'3803'}='ICF'; $kvs{'3804'}='ICF'; $kvs{'3824'}='ICF'; $kvs{'3840'}='ICF'; $kvs{'1265'}='ICF'; $kvs{'1187'}='ICF'; $kvs{'1183'}='ICF'; $kvs{'1163'}='ICF'; $kvs{'1282'}='ICF'; $kvs{'1365'}='ICF'; $kvs{'2286'}='ICF'; $kvs{'2288'}='ICF'; $kvs{'2289'}='ICF'; $kvs{'2185'}='ICF'; $kvs{'2183'}='ICF'; $kvs{'2182'}='ICF'; $kvs{'2845'}='ICF'; $kvs{'2176'}='ICF'; $kvs{'2165'}='ICF'; $kvs{'4184'}='ICF'; $kvs{'6195'}='ICF'; $kvs{'8873'}='ICF'; $kvs{'8872'}='ICF'; $kvs{'8875'}='ICF'; $kvs{'8884'}='ICF'; $kvs{'8888'}='ICF'; $kvs{'8700'}='ICF'; $kvs{'7866'}='ICF'; $kvs{'7855'}='ICF'; $kvs{'7892'}='ICF'; $kvs{'7895'}='ICF'; $kvs{'7826'}='ICF'; $kvs{'7822'}='ICF'; $kvs{'7812'}='ICF'; $kvs{'7806'}='ICF'; $kvs{'7805'}='ICF'; $kvs{'7804'}='ICF'; $kvs{'7801'}='ICF'; $kvs{'6292'}='ICF'; $kvs{'6285'}='ICF'; $kvs{'6180'}='ICF'; $kvs{'6186'}='ICF'; $kvs{'6178'}='ICF'; $kvs{'4185'}='ICF'; $kvs{'4183'}='ICF'; $kvs{'4179'}='ICF'; $kvs{'4265'}='ICF'; $kvs{'4272'}='ICF'; $kvs{'1366'}='KOCH'; $kvs{'7874'}='KOCH'; $kvs{'7846'}='KOCH'; $kvs{'7656'}='KOCH'; $kvs{'7835'}='GRUETZNER'; $kvs{'7828'}='TRITRADE'; $kvs{'8711'}='TRITRADE'; $kvs{'7880'}='TRITRADE'; $kvs{'7824'}='TRITRADE'; $kvs{'7823'}='LUDWIG'; $kvs{'7635'}='LUDWIG'; $kvs{'7633'}='LUDWIG'; $kvs{'7632'}='LUDWIG'; $kvs{'7821'}='BRAUBURGER'; $kvs{'8716'}='BRAUBURGER'; $kvs{'8885'}='KRAUL'; $kvs{'8886'}='KRAUL'; $kvs{'6284'}='EMPORIUM'; $kvs{'7825'}='THERMER'; $kvs{'7847'}='BELGER'; ######################################################## ## DO NOT EDIT FROM HERE ## ######################################################## chdir($output_dir); foreach(<*.txt>) { my $kv; my $kunde; my $dir; ($kv) = $_ =~ /.*([0-9]{4})_.*\.txt/; $kunde = $kvs{$kv}; $dir = $dirs{$kunde}; print "cp $_ $dir\n"; `xcopy /Y $_ $dir\\`; unlink $_; }