Ja, ist 'ne große Bitte, aber mir war mal wieder langweilig:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
use warnings;
use strict;
use File::Copy;
my $indir = "C:/Test/Import";
my @crit = (["TTS3", "02502185"],
["TTS3", "CONFIRM"],
["TTS3", "02502106"],
["TTS3", "02502100"]);
my @dirs = ("GGR",
"Confirm",
"Nack",
"Ack");
sub createDir {
my $dirname =shift;
if (! -e $dirname) {
print "$dirname\n";
}
}
chdir($indir);
my @files = glob("*.CSV");
my $dirname;
for my $i (@files) {
for my $u (0 .. $#crit) {
if ($i =~ /\Q$crit[$u][0]\E/ &&
$i =~ /\Q$crit[$u][1]\E/) {
if ($dirs[$u] eq "Ack" || $dirs[$u] eq "GGR") {
my $d2 = "$indir/AckGGR";
createDir($d2);
my $t2 = "$d2/$i";
print "$i -> $t2\n";
}
$dirname = "$indir/$dirs[$u]";
print "\n";
createDir($dirname);
my $target = "$dirname/$i";
print "$i -> $target\n";
}
}
if ($i =~ /.{5}\.TTS3/) {
$dirname = "$indir/Nic";
print "\n";
createDir($dirname);
my $target = "$dirname/$i";
print "$i -> $target\n";
}
}
Ist das richtig, daß auch die RT001.-Datei auf "TTS3" und "02502185" matcht, also zugleich auch eine GGR-Datei ist?