thorti85
Goto Top

Problem beim Umbenennen von Dateien mit Perl

Hallo,

ich will Dateien umbenennen, mit Perl! face-wink

hab zwar schon viel im Internet gelesen, aber irgendwie hab ich 0-Durchblick, bin halt noch ein Programmieranfänger.
Bisher habe ich dies hier geschrieben
(OS ist Windows)

#!/usr/bin/perl -w
#use strict; 

#4---------------------------------------------------------------------------------------------------
my $datadir = 'C:\Desktop\perltest';  
my $datadir1 = 'C:\Desktop';  
#7---------------------------------------------------------------------------------------------------
opendir(DIR,"$datadir");  
@filearr=readdir(DIR);
closedir(DIR);

foreach $file (@filearr) {
	($schnipsel1, $schnipsel2) = split (/\_/, $file);

		$file1="$schnipsel1"." - "."$schnipsel2\n";	  

		rename ("$file","$file1");  
		print "$file in $file1 umbenannt\n";					  
}

Damit will ich Dateien im Perlverzeichnis auslesen, bei "_" splitten und am Schluss wieder zusammenflicken.
Die Datei sieht z.B. so aus
xxx_yyy.txt
soll danach so aussehen
xxx - yyy.txt

Wenn ich das per Kommandozeile ausführe, wird mir kein Fehler angezeit, sondern es scheint alles korrekt zu sein.
Aber wenn ich in das Verzeichnis gehe, sind die Dateinamen immer noch so wie davor (xxx_yyy.txt).
Was fehlt dem Skript denn?

Viele Grüße
und DAnke wür euere Antworten
Thorsten/T-Rule

Content-Key: 68157

Url: https://administrator.de/contentid/68157

Printed on: April 18, 2024 at 23:04 o'clock

Mitglied: 6890
6890 Sep 09, 2007 at 12:28:19 (UTC)
Goto Top
Hi,
($schnipsel1, $schnipsel2) = split (/\_/, $file);

da is der fehler face-smile

mach einfach ma so:
($schnipsel1, $schnipsel2) = split ("_", $file);


bzw warum so schwer mach doch einfach ein $file =~ tr/_/-/;

mfg
Member: thorti85
thorti85 Sep 09, 2007 at 17:28:40 (UTC)
Goto Top
Perfekt danke,
funktioniert alles! :D