Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11970[/thread]

Dateien im Ordner durchsuchen und verschieben?!

Leser: 2


<< >> 4 Einträge, 1 Seite
yasukatakaya
 2008-06-04 13:16
#110724 #110724
User since
2007-05-31
68 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich versuche einen Ordner der viele Dateien enthält in jede Datei reinzugucken und nach dem folgenden Stichwort suchen "SNNH-UB01-002", wenn dieses in der Datei existiert, soll die Datei in den Ordner SNNHUB01 verschoben werden, irgendwie klappt es nich mit dem verschieben bei mir, könnt ihr mir sagen was ich falsch gemacht habe?!
Code: (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
use strict;
use warnings;

opendir(DIR,"test");
while($datei = readdir(DIR))
{
open(INPUT,'<',"test/$datei");
print $datei;
undef $/;
#open (OUTPUT,">>Ausgabe.txt") or die "konnte $ziel nicht oeffnen,$!\n";
$_ = <INPUT>;
tr/\000//d; s/" /"\n/g; s/>/>\n/g;

#print "$_\n";

(my $testschritt) = $_ =~ /SNNH-UB01-002/gsm;

print "$testschritt\n";

if(defined($testschritt))
{
#print "$datei\n";
#rename("test/$datei", "SNNHUB01/$datei");
#print "$testschritt\n";
#chmod 0777, $datei;
#unlink ('test/$datei');
system "copy \"test\$datei\" SNNHUB01\\";
}


close (INPUT);
close(FILE);
}
closedir(DIR);
renee
 2008-06-04 13:55
#110725 #110725
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
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
use strict;
use warnings;
use Tie::File;
use File::Spec;
use File::Copy qw(move);

my $dir = 'test';
my $out = 'SNNHUB01';

opendir my $dirh, $dir or die $!;
while( my $entry = readdir $dirh ){
    my $path = File::Spec->catfile( $dir, $entry );
    next unless -f $path;

    tie my @lines, 'Tie::File', $path or die $!;
    my $found = grep { /SNNH-UB01-002/ }@lines;
    untie @lines;

    next unless $found;

    my $new = File::Spec->catfile( $out, $entry );
    move $path, $new or die $!;
}
closedir $dirh;


(ungetestet)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
havi
 2008-06-04 14:05
#110726 #110726
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Code: (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
#!/usr/bin/perl

use warnings;
use strict;

my $pfad = "C:\\Lokale_Daten\\test\\";
opendir(my $fhDir, $pfad) or die $!;
my @files = grep { $_ !~ m/^\.{1,2}$/ } readdir($fhDir);
closedir($fhDir) or die $!;

my $pfadZiel = "C:\\Lokale_Daten\\SNNHUB01";
my $gefunden;
foreach (@files) {
my $dateiEin = $pfad.$_;
open(my $fhFiles, $dateiEin) or die $!;
while(my $zeile = <$fhFiles>) {
$gefunden = "";
if ($zeile =~ m/SNNH-UB01-002/) {
$gefunden = "X";
last;
} # if
} # while
close($fhFiles);
system "move $dateiEin $pfadZiel" if $gefunden eq "X";
} # foreach

print "Fertig.\n";
yasukatakaya
 2008-06-05 11:33
#110747 #110747
User since
2007-05-31
68 Artikel
BenutzerIn
[default_avatar]
Danke euch beiden, damit komme ich auf jedenfall weiter!
<< >> 4 Einträge, 1 Seite



View all threads created 2008-06-04 13:16.