CD-Batch-O-Mat
Die DvDs mit den ersten Filme meiner Tochter, Audio-CDs mit meinen Lieblings-MODs und Daten CDs mit Fotos kommen langsam in ein fortgeschrittenes Alter.
Zeit zu prüfen, ob alles noch lesbar ist und falls nicht, zu hoffen, dass die Backup Disk der Backup Disk noch funktioniert. 🙂
Aber all das ist leichter gesagt als getan.
Zunächst wollte ich die Film-DvDs nur kopieren und so für die nächsten fünf Jahre absichern.
Ich habe einen Brenner, der mit 16-Facher Geschwindigkeit brennen könnte. Bei mit darf er das aber nicht. Er wird künstlich auf 12-Fach begrenzt, um die Rohlinge nicht gleich zu versauen.
Bei meinem Nero 6.3 OEM stellte ich fest, dass man die maximale Brenngeschwindigkeit immer nur dann setzen kann, wenn ein Rohling eingelegt ist.
Die alten Rohlinge der Filme sind „nur“ mit 4-Facher Geschwindigkeit beschreibbar.
Deshalb kann man vor dem Kopieren nur „maximal“ (==Das will ich nicht) oder nicht mehr als 4-fach anwählen. 👿 Also fiel Nero aus…
Dann kam eine lange Zeit des vergeblichen Suchens nach einem fertigen, für meine Zwecke dienlichen Werkzeug.
Die meisten Tools sind für das Eindampfen zu großer DvDs oder zum konvertieren in DIVx & Co gebaut. Die bauen die Menüstruktur um, transkodieren die Filme und was weiß ich nicht noch alles. Man muss ziemlich viel rum Klicken und nichts läuft einfach so.
In der Zeit des Suchens hätte ich dreimal Nero nehmen können und wäre fertig! 🙁
Nun ja. Einfach kann jeder!
Aus meiner Zeit bei XSS/SoftThinks hatte ich noch alte Versionen der cdrtools.
Die sind zwar für Windumms Benutzer etwas umständlich „ungewohnt“ zu bedienen, können aber eine Menge.
Die neuen cdrtools brennen jetzt auch „CD-R“ Rohlinge. 🙂
Also habe ich mir dafür ein paar „kleine“ Batch-Dateien geschrieben die meine alten CDs auf Lesbarkeit prüfen und meine Kind-Filme kopieren.
Die reinen Batch-Scripte sind hier.
Ein Zip mit allen benötigten Dateien (Binär- und Batch-Dateien) habe ich hier hin geladen.
Folgende Scripte sind in den Archiven:
CDCopyLoop.cmd | CDs/DvDs kopieren:
Die maximale Brenngeschwindigkeit kann getrennt für CDs und DvDs angegeben werden. |
CDCheckLoop.cmd | CDs/DvDs auf Lesbarkeit prüfen:
CDs werden mit aktivierter C2-Fehlerprüfung gelesen. |
CDReadLoop.cmd | CDs/DvDs als ISO auf die Festplatte speichern:
|
BurnAllISO.cmd | Alle ISOs aus einem Verzeichnis auf CD/DvD brennen:
Die maximale Brenngeschwindigkeit kann getrennt für CDs und DvDs angegeben werden. |
In jeder Datei muss man oben die Variable CDR_DEVICE auf sein System anpassen:
„cdrecord -scanbus“ gibt eine Liste aus. In der steht bei mir u.A.
scsibus1: 1,0,0 100) 'TSSTcorp' 'CD/DVDW SH-S182D' 'SB06' Removable CD-ROM 1,1,0 101) * 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) * 1,6,0 106) * 1,7,0 107) HOST ADAPTOR
Das bedeutet, das mein „CDR_DEVICE=1,0,0“ ist.
In den cmd-Dateien, die Medien schreiben, kann man mit CD_SPEED und DVD_SPEED die maximale Brenngeschwindigkeit setzen. Wenn das Medium nur weniger unterstützt, limitiert cdrecord das selbst.
Die Batch-Akrobatik hat mir mal wieder ganz gut getan. 🙂
Mir fiel beim Schreiben auf, dass man mit der Windows Command Shell „cmd.exe“ Dinge machen kann, die ich sonst nur in Linux kannte. [Ein elender kleiner Krepel bleibt cmd trotzdem!]
Ein Ding hat mich besonders genervt. Das Script:
@echo off for %%? in (hallo du da) do ( SET TN=%%? echo %TN% ) echo %TN%
gibt aus:
ECHO ist ausgeschaltet (OFF). ECHO ist ausgeschaltet (OFF). ECHO ist ausgeschaltet (OFF). da
Die Variable „TN“ wird also nicht während der for-Schleife gesetzt, hat aber zuletzt den richtigen Wert.
Was sich Microsoft dabei gedacht hat, bleibt mir verborgen! 🙄
Ich habe einige Zeit gebraucht, um herauszufinden, dass das funktioniert, wenn man statt der Prozentzeichen Ausrufezeichen benutzt:
@echo off SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION for %%? in (hallo du da) do ( SET TN=%%? echo !TN! )
Gibt aus:
hallo du da
So, wie es sein soll. 😕 …nur mit Ausrufezeichen.
Na, ja… bash bleibt bash. 😉