1
2
3
4
5
6
7
8
9
10
use File::Copy;
open (FILE, "d:/temp/result.txt");
while (<FILE>)
{
copy($_, "d:/temp/Testordner/")or (print "File cannot be moved: "
and print $_);
}
close (FILE);
Guest Death89Ich habe eigentlich ein funktionsfähiges Skript, allerdings werden nicht alle Dateien kopiert. Die erste Datei ist immer die 381ste Datei, die er kopieren soll. Woran kann das liegen?
print "File cannot be moved: "
print "File cannot be moved: $!"
Guest Death89File cannot be moved: d:\temp\sbxs\ffs\reg\CTW\VIL\vil_dfm.he
2011-08-02T12:13:29 pqin der variable $! steht ein dateiname??
windows ist kaputter als ich dachte.
1
2
C:\>perl -MFile::Copy=copy -le "copy 'talsdfjlsdfj.txt', 'hallsksd.txt' or die $!"
Bad file descriptor at -e line 1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#!/usr/bin/perl use strict; use warnings; use File::Copy; my $file='d:\temp\result.txt'; my $dir='d:\temp\Testordner\\'; open (my $fh, '<', $file) or die qq!ERROR OPEN $file ($!)\n!; while (<$fh>) { # \n entfernen chomp; # weiter wenn die Datei nicht existiert next unless(-f $_); copy($_, $dir) or die qq!ERROR MOVE "$_" ($_)\n!; } close ($fh);
2011-08-02T11:47:16 pq3. du musst vor dem copy noch ein chomp; ausführen, damit das newline vom dateinamen abgetrennt wird, denn in $_ steht immer die komplette zeile mit zeilenende.