Hallo,
da ich derzeit Überlegungen anstelle, meine CDs digital zu archivieren habe ich mir zu dieser Problematik auch mal Gedanken gemacht.
(ich hoffe ich schieße hier nicht über das Ziel hinaus)
Meine ersten Gedanken waren da einen Editor der nach Regulären Ausdrücken suchen/ersetzen kann. (Notepad++ (Freeware); Ultraedit (Kommerziell) (kann aber auch nach *.cue Dateien suchen und dort die Ersetzungen vornehmen).
Jetzt habe ich eine Lösung als Perl-Skript, welches eine Kopie der CUE-Datei erstellt (Dateiendung .flac.cue) in der die Pfade entfernt und das ".wav" durch ".flac" ersetzt wird. Dieses Perlscript in den Explorer eingebunden ermöglicht es die Änderung mit einem Rechstklick durchzuführen.
Konkret wird aus einer Zeile wie
FILE "Chalice\Best Of The Past\Chalice - Best Of The Past - 01 - Run For Cover.wav" WAVE
eine Zeile wie
FILE "Chalice - Best Of The Past - 01 - Run For Cover.flac" WAVE
wobei die Erweiterung "wav" aus Kleinbuchstaben und die Wörter "FILE" und "WAVE" aus Grossbuchstaben bestehen muss.
Hier das Skript
use Getopt::Std;
# Hole übergbenen Parameter -f
getopts('f:', \%opt);
$ifile = $opt{'f'};
# Dateiname für Ausgabe Datei festlegen
$ofile = $ifile;
$ofile=~ s/(.*)\.cue$/\1\.flac\.cue/;
# Dateinamen ausgeben
print "Eingabe Datei: $ifile\n";
print "Ausabe Datei: $ofile\n";
# Dateien öffnen
open(INFILE, "<$ifile") || die "File not found";
open(OUTFILE, ]$ofile") || die "Datei konnte nicht angelegt werden";
# jede zeile einlesen
while (<INFILE>){
# ersetzungen vornehmen
$line=$_;
$line=~ s/^FILE \".*\\(.*)\.wav\" WAVE$/FILE \"\1\.flac\" WAVE/;
# und Zeile in Datei schreiben
print OUTFILE $line;
}
# Dateien schliesssen
close(INFILE);
close(OUTFILE);
Das Skript wird wie folgt aufgerufen
Perl SKRIPTNAME -f CUE-DATEINAME
wobei CUE-DATEINAME der Name der zu ändernden CUE Datei ist und in Anführungszeichen gesetzt werden muss, wenn diese Leerzeichen enthält.
Sicherlich kann diesse Skript noch erweitert werden, z.B. Fehlerbehandlung, ignorieren von Groß-/Kleinschreibung usw.
Joe