Hallo Perlprofis,
ich schreibe gerade meine erstes Script :) und finde keine Lösung für folgende Anforderung:
Das Script bearbeitet die Dateinamen meiner MP3 Sammlung (kürzen, Sonderzeichen entfernen usw). Der zurechtgestutzt Dateinamen soll letztendlich dem Benutzer zur Korrektur vorgelegt werden. Ich möchte also einen String in die Kommandozeile schreiben, dort bearbeiten und mit Return den veränderten String wieder einlesen. Mein Lösungsansatz war <STDIN> einen String vorzugeben, ich finde dazu aber nichts im Web.
Hat jemand eine Idee wie das Problem anzugehen ist?
hi,
probier mal das hier, ich sag schomal tschüss, Rolf
==================
#!/usr/bin/perl
Dateinamen vorschlagen...
$dir = "/hot";
$ndir = "/hot/newfilenames";
$ext = "mp3";
use File::Copy;
lese Verzeichnis
opendir DIR, "." or die $!;
my @files = grep { -f "$dir/$_"}readdir DIR;
closedir DIR;
Anzahl ermitteln
my $x = scalar @files;
Fuer jede Datei die Auswahl zeigen und je nach Input
die Datei benennen und in anderes Verzeichnis copieren...
for($i = 0; $i < $x; $i++){
print "Filename: $files[$i], Vorschlag: 00$i.$ext, Enter y/n or own filename\n";
$in = <STDIN>;
chomp $in;
if($in eq "y"){
my $nfilename = "00$i.$ext";
copy $files[$i], "$ndir/$nfilename";
}
elsif($in eq "n"){}
else{
my $nfilename = $in;
chomp $nfilename;
copy $files[$i], "$ndir/$nfilename";
}
}