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-ID: 68157

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

Ausgedruckt am: 14.11.2024 um 01:11 Uhr

6890
6890 09.09.2007 um 14:28:19 Uhr
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
thorti85
thorti85 09.09.2007 um 19:28:40 Uhr
Goto Top
Perfekt danke,
funktioniert alles! :D