Schrift
[thread]5873[/thread]

Skript löscht Dateien: Perlskript (Seite 2)

Leser: 1


<< |< 1 2 >| >> 17 Einträge, 2 Seiten
GetIT
 2003-11-03 12:59
#68852 #68852
User since
2003-11-02
24 Artikel
BenutzerIn
[default_avatar]
[quote=GetIT,03.11.2003, 11:26]Das mit der Erweiterung klingt ja echt net blöd.

Danke euch allen!!!!!!!!!!!![/quote]
ABER:
Wieso gehts in Windows. Ich meine sind dann sicher einige Dateien doppelt und dreifach vorhanden, aber trotzdem immer noch 29.
Ronnie
 2003-11-03 13:04
#68853 #68853
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[quote=GetIT,03.11.2003, 11:59]Wieso gehts in Windows. Ich meine sind dann sicher einige Dateien doppelt und dreifach vorhanden, aber trotzdem immer noch 29.[/quote]
Unter Linux ist rename ein verschieben (ohne Rücksicht auf Verluste), unter Windows ist es wahrscheinlich anders implementiert, so das nicht einfach existierende Dateien überschrieben werden können.
GetIT
 2003-11-03 13:28
#68854 #68854
User since
2003-11-02
24 Artikel
BenutzerIn
[default_avatar]
Hab ich mir auch so zusammengereimt.

Hab aber unter Windows (auch mit geändertem Skript) folgendes Problem
                                             
DSC00316.jpg --> Daenemark01.jpg
DSC00317.jpg --> Daenemark02.jpg  
.....                                             #sind 29 Dateien
DSC00343.jpg --> Daenemark29.jpg
DSC00316.jpg --> Daenemark01.jpg
DSC00317.jpg --> Daenemark02.jpg
.....                                             #sind nochmal 29
DSC00343.jpg --> Daenemark29.jpg

Das Skript tut bei der Ausführung so, als wären es 58 Datein nur im Ordner /Bilder stimmts.
Jedoch bei erneuter Ausführung des Skripts:

Daenemark01.jpg --> Daenemark01.jpg
Daenemark02.jpg --> Daenemark02.jpg
...
Daenemark29.jpg --> Daenemark29.jpg
Daenemark01.jpg --> Daenemark30.jpg
Daenemark02.jpg --> Daenemark31.jpg
...
Daenemark29.jpg --> Daenemark58.jpg

Dann sind auch in meinem Ordner die Datein "Daenemark30-58.jpg".
Das dann die Dateien 30-58 auf der Platte sind ist klar (die alten sind ja überschrieben), aber wieso läuft das Skript 2x ab??
Ronnie
 2003-11-03 13:37
#68855 #68855
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Windows kennt den Unterschied zwischen *.JPG und *.jpg nicht.

Code: (dl )
1
2
push(@bilder, glob"*.JPG"); 
#push(@bilder, glob"*.jpg");
\n\n

<!--EDIT|Ronnie|1067859615-->
format_c
 2003-11-03 14:10
#68856 #68856
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=GetIT,03.11.2003, 11:59]ABER:
Wieso gehts in Windows.[/quote]
Also bei mir macht das ding genau das gleiche unter Windows.

Gruß Alex
GetIT
 2003-11-03 14:52
#68857 #68857
User since
2003-11-02
24 Artikel
BenutzerIn
[default_avatar]
Danke!!!
Dubu
 2003-11-03 15:00
#68858 #68858
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Hier mal ein Gegenvorschlag:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl
use strict;
use warnings;

chdir("../Bilder") or die "Kann nicht nach ../Bilder wechseln: $!";
my @bilder = sort glob ('*.JPG *.jpg');

my $prefix = 'Daenemark';
my $i = 1;
foreach (@bilder) {
   my $target;
   # vorhandene ueberspringen
   do {
       $target = sprintf ("$prefix%02d.jpg", $i);
       ++$i;
   } while -e $target;
   rename $_, $target or warn "Kann $_ nicht in $target umbenennen: $!";
   print "$_ --> $target\n";
}
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2003-11-02 21:18.