Thread Dateien kopieren und entpacken (8 answers)
Opened by karl34 at 2011-10-24 13:07

karl34
 2011-10-24 13:07
#153488 #153488
User since
2011-10-24
5 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

bastele an eine perl Script, gezipte Dateien, Endung .zip aus einem Verzeichnis, Verzeichnis_A, ins andere, Verzeichnis_B, kopieren und in dem anderem Verzeichnis die gezipten Dateien entpacken.

Das kopieren klappt es, das entpacken nicht :-(

Mein Script sieht folgend aus:
Code (perl): (dl )
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
#!/usr/bin/perl -w

use strict;
use warnings;

my $strVereichnis = "Verzeichnis_A";
my $strAblageVer = "Verzeichnis_B";


use Cwd;
use File::Copy;

# habe versucht mit Zip Module zu arbeiten, leider nicht hin bekommen :-(
#use Archive::Zip;
#use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
#use Compress::Raw::Zlib ;



my $VerzPfad = cwd . '/'; # Verzeichnis Pfad ohne Dateinanem auslesen.

# Auslesen aller zip Dateien, und NUR zip Dateien.
my $result=opendir(DIR,$strVereichnis) || die $!;
my @files =  grep { /\.zip$/ } readdir(DIR);
close DIR;

# Nur kopieren
foreach my $dateien ( @files )
{
    copy( $strVereichnis.'/'.$dateien, $strAblageVer.'/'.$dateien );   

    # Versuch im gleichem "Zug" die Dateien zu entpacken.
    #system("unzip", $VerzPfad.$strAblageVer.'/'.$dateien );
   
    # Versuche mit Zip zu arbeiten :-(
    #my $zipName = shift($strAblageVer.'/'.$dateien );
    #my $status = $zip->read( $strAblageVer.'/'.$dateien  );       
}

print "\nKopierne fertig\n\n";

# Ab hier schlägt alles fehl.
system("cd $VerzPfad.$strAblageVer");

# unzip "geht" nicht ins Verzeichnis_B, sondern entpackt die Dateien, ein Verzeichnis höher,
# auf gleiche Ebne, auf der das Script ausgeführt wird.
foreach my $dateien ( @files )
{
    # Zum testen den Verzeichnis Pfad ausgeben:
    print "::: ".$VerzPfad.$strAblageVer.'/'.$dateien."\n";
    system("unzip", $VerzPfad.$strAblageVer.'/'.$dateien );
}
print "\nfertig\n\n";

perl --version:
This is perl 5, version 12, subversion 4 (v5.12.4) built for x86_64-linux-gnu-thread-multi
(with 45 registered patches, see perl -V for more detail)

Kubuntu 11.10

Kann mir jemand die korrekte Vorgehensweise beschreiben?
Danke im Voraus.

Grüße
kalr34
Last edited: 2011-10-24 13:16:11 +0200 (CEST)

View full thread Dateien kopieren und entpacken