Seriendaten-Brenner

hier sind Anleitungen drin, die von unseren Usern oder Moderatoren nur für das EFB erstellt wurden

Moderatoren: Jean, |Gordon|, Moderatoren

Antworten
Benutzeravatar
korinor
Mitglied
Beiträge: 258
Registriert: 28.10.04, 13:24

Seriendaten-Brenner

Beitrag von korinor » 27.05.05, 12:55

Hallo,

lang hat's gedauert, aber hier isses nu: Eine Dokumentation zum Brennen von CDs im Stapel mit unterschiedlichen Inhalten. Ich nenn's einfach mal Seriendaten-Brennen, bis mir was besseres einfällt. Oder es macht jemand einen Vorschlag, wie man sowas noch nennen könnte.

Hintergrund:
Es geht darum, unterschiedliche Daten auf CDs zu brennen. In Nero o.ä. jedesmal ein neues Projekt dazu anlegen und die Dateien in das Fenster zu ziehen ist bei einer größeren Menge absolut kein Spaß mehr. Mit folgenden Scripts kann man sich dementsprechend helfen (dazu gleich mehr).

Voraussetzungen:
- Windows 2000 oder XP
- UltraISO 7.2.5.926 oder höher
- CDrecord 1.11a35 oder höher

Es geht auch mit anderen Programmen als UltraISO, sofern diese mit Kommandozeilenparametern entsprechend arbeiten können. Ich konnte leider kein ähnliches Programm aus dem Freeware-/Opensource-Bereich finden.

Hier die Scripts:

ISOGENERATOR.CMD :

Code: Alles auswählen

@echo off
echo ISOgenerator v1
echo ================
echo.

set ultraiso=C:\Programme\UltraISO\ultraiso.exe

rem Pfade entsprechend anpassen, wo die Quelldaten liegen
rem Bei Leerzeichen im Pfad in Anführungszeichen einschließen!!!
set iso_stamm=d:\temp-work\_dummy\sb-daten\_stamm
set iso_src=d:\temp-work\_dummy\sb-daten\daten
set iso_out=d:\temp-work\_dummy\sb-daten\__out

rem ISO_STAMM = Stammverzeichnis, kommt in ALLE ISOs mit rein
rem ISO_SRC   = Pfad, welcher die Verzeichnisse enthält, die als ISOs erstellt werden sollen
rem ISO_OUT   = Verzeichnis, in dem die ISO-Dateien landen

echo PFADE:
echo UltraISO : %ultraiso%
echo ISO-Stamm: %iso_stamm%
echo ISO-Src  : %iso_src%
echo ISO-Out  : %iso_out%
echo.

if not exist %iso_stamm% echo FEHLER: ISO-Stamm gibt's nicht, ISOgenerator wird beendet... & goto end
if not exist %iso_src% echo FEHLER: ISO-Src gibt's nicht, ISOgenerator wird beendet... & goto end
if not exist %iso_out% echo FEHLER: ISO-Out gibt's nicht, ISOgenerator wird beendet... & goto end
if not exist %ultraiso% echo FEHLER: UltraISO nicht gefunden, ISOgenerator wird beendet... & goto end

echo ISOgenerator ist bereit!
pause
echo.

for /d %%F in (%iso_src%\*) do start /w %ultraiso% -imax -l -d %iso_stamm% -f %%F -volu %%~nF -out %iso_out%\%%~nF.iso
echo Fertig.

:end
echo.
BATCHBURNER.CMD :

Code: Alles auswählen

@echo off
echo BatchBurner - Brennt alle ISO-Dateien im aktuellen Verzeichnis
echo ==============================================================
echo.

rem Bitte wie folgt aufrufen:
rem   FOR %%F IN (*.ISO) DO BATCHBURNER %%F

if ""=="%1" goto error
echo.

cls
echo Batchburner brennt jetzt: %1
echo.
pause

cdrecord dev=1,1,0 -load
cdrecord dev=1,1,0 -dummy -eject %1 -v gracetime=3
echo.
echo Medium fertig: %1
pause
goto end

:error
echo Kein Dateiname angegeben!

:end
echo.
Und hier noch die Anleitung:

Vorbereitung der ISO-Dateien mit ISOGENERATOR.CMD
Im Script ISOGENERATOR.CMD werden insgesamt 4 Variablen definiert, die jeweils folgende Pfadangaben enthalten:

%ULTRAISO% = Pfad zu UltraISO, z. B. C:\Programme\UltraISO\ultraiso.exe
%ISO_STAMM% = Verzeichnispfad. Alle darin enthaltenen Dateien und Verzeichnisse werden in jede ISO eingebettet
%ISO_SRC% = Verzeichnispfad. Alle darin enthaltenen Verzeichnisse werden bearbeitet
%ISO_OUT% = Verzeichnispfad, in dem die ISO-Dateien erstellt werden

Das in ISO_STAMM angegebene Verzeichnis wird generell in alle ISO-Dateien eingebettet. Das gilt für alle darin enthaltenen Dateien und Verzeichnisse. Im Normalfall landen diese Dateien direkt im Hauptverzeichnis \ der ISO-Datei (bedingt durch den Parameter –F bei der Übergabe an UltraISO).

Im bei ISO_SRC angegebenen Verzeichnispfad wird für jede benötigte CD ein separates Verzeichnis angelegt, welches wiederum die entsprechenden Dateien und Verzeichnisse enthält, die in die ISO-Datei geschrieben werden. Bedingt durch den Parameter –D bei der Übergabe an UltraISO wird das Verzeichnis selbst auch auf der CD angelegt.

Das für ISO_OUT angegebene Verzeichnis sollte leer sein, bzw. die darin enthaltenen Dateinamen sollten nicht mit den resultierenden ISO-Dateinamen kollidieren. Der Dateiname einer ISO resultiert aus dem Verzeichnisnamen unter ISO_SRC und wird auch für das ISO-Volumelabel verwendet.

Sobald alle benötigten Dateien und Verzeichnisse angelegt wurden, kann ISOGENERATOR.CMD ohne Angabe von Parametern gestartet werden. Sollte eines der genannten Verzeichnisse fehlen oder die ULTRAISO.EXE nicht gefunden werden, bricht ISOGENERATOR ab.

Brennen der ISOs im Stapel mit BATCHBURNER.CMD
Nach dem Anlegen der ISOs können diese mit BATCHBURNER.CMD auf CDs gebrannt werden. BATCHBURNER wird mit dem Namen der ISO-Datei (möglichst im aktuellen Verzeichnis) gestartet:

Code: Alles auswählen

BATCHBURNER.CMD Datei.ISO
Um eine ganze Serie von ISO-Dateien zu brennen, bedarf es einer Schleife:

Code: Alles auswählen

FOR %F in (*.ISO) DO BATCHBURNER.CMD %F
BATCHBURNER zeigt bei jedem Vorgang den Dateinamen der ISO an. Sobald mit ENTER bestätigt wird (mit STRG-BREAK ist ein Abbruch möglich), schließt CDRECORD den Tray (sofern nicht bereits geschlossen und mit einer CD-R bestückt) und startet anschließend den Brennvorgang. Nach Abschluß des Brennens wird die CD wieder automatisch ausgeworfen. Auch hier zeigt BATCHBURNER noch mal den Dateinamen der ISO an.

---
Ich hoffe, das erklärt alles :lol: Das ganze ist nicht unbedingt komfortabel, aber da gibt es auch Möglichkeiten. Beispielsweise könnte man mit AutoIt 3 ein Frontend für den Batchburner erstellen, mit dem man die ISOs auswählen und dann den Vorgang starten kann.

Benutzeravatar
Shimao
Beiträge: 647
Registriert: 11.10.02, 11:35

Beitrag von Shimao » 27.05.05, 16:58

Super gute Idee mit dem script. Wenn die ISO-Erzeugung jetzt noch mit freeware-tools klappen würde, dann wär's perfekt. Vielleicht geht es ja mit mkisofs.exe, das ist ja auch schon bei den cdrtools dabei. Sähe in etwa so aus:

Kommando:

Code: Alles auswählen

mkisofs.exe -J -r -V VolumeName -graft-points -o X:\2burn.iso -path-list X:\2burn.txt
-J -r = Joliet Rockridge
-V = Volumenname
-graft-points = Schalter für die Aufnahme mehrerer Verzeichnisse
-o = Outfile
-path-list = Pfade-Dateiliste, die in das Iso aufgenommen werden sollen


2burn.txt = pathlist

Code: Alles auswählen

/=c:\\_tmp\\src\\
/=c:\\_tmp\\stamm\\
nach folgendem Schema:

linke Seite = Dateien/Verzeichnis-Anordnung auf der ISO-Datei/CD
rechte Seite = Quellverzeichnisse und -dateien
wichtig: das Backslash muss mit zusätzlichem Backslash escaped werden.

Einzelne Dateien kann man auch direkt angeben etwa so

Code: Alles auswählen

/autoexec.bat=c:\\autoexec.bat
Zusätzliche Verzeichnisse erzeugt man so:

Code: Alles auswählen

/Verz1/subVerz1/=c:\\src\\
Bleibt das Problem - da es sich ja um Serien-Brennen handelt- dass die Dateti 2burn.txt dynamisch verändert werden müsste.

dpaehl

Beitrag von dpaehl » 27.05.05, 17:18

2burn.txt = €¢„‹list
Code:

/=c:\\_tmp\\src\\
/=c:\\_tmp\\stamm\\


nach folgendem Schema:

linke Seite = Dateien/Verzeichnis-Anordnung auf der ISO-Datei/CD
rechte Seite = Quellverzeichnisse und -dateien
wichtig: das Backslash muss mit zusätzlichem Backslash escaped werden.

Einfacher geht es so:
/Verz1/subVerz1/=c:/src/

Damit kannste den zusätzlichen slash vergessen und es klappt genauso
Grund: /folder/ kommt aus dem Linux-Bereich. \folder\ ist windows
Und bei C++(C) programmen muß ein Bachslash mit einem zusätzlichem Backslash versehen werden, damit es einer wird.

Und das wichtigste haste noch vergessen. Die Textdatei muß einen UNIX LF haben heißt #10 und nicht den Windows #10#13. Klappt sonst nicht.

Um eine solche Datei zu erstellen kann man auch mein Programm dafür nehmen VisualISO 1.1 Beta 6

Benutzeravatar
Shimao
Beiträge: 647
Registriert: 11.10.02, 11:35

Beitrag von Shimao » 27.05.05, 17:23

Habe gerade gelesen, dass es auch ohne path-list dateien gehen müsste:

Code: Alles auswählen

mkisofs.exe -J -r -V VolumeName -graft-points -o X:\2burn.iso /=c:\\_tmp\\src\\ /=c:\\_tmp\\stamm\\ 
bzw.

Code: Alles auswählen

mkisofs.exe -J -r -V VolumeName -graft-points -o X:\2burn.iso /=c:/_tmp/src/ /=c:/_tmp/stamm/

dpaehl

Beitrag von dpaehl » 27.05.05, 17:54

Richtig aber nur mit verzeichnissen. Um mehrere Dateien und Verzeichnisse zu brennen mußte eine path-list haben

Antworten