Beschreibung

Stapelverarbeitung leicht gemacht

quarkzBatch ist ein Win32-Konsolenprogramm, mit dem man anhand einer Vorlage eine Batch-Datei erzeugen kann. Das Program durchsucht einen Pfad nach dem Suchmuster entsprechenden Dateien und fügt für jede passende Datei die Batch-Befehle aus der Vorlage ein.

Wofür braucht man denn sowas?

Wenn man z.B. mit dem Borland Resourcencompiler Resoucenskripte (*.rc) mit einer speziellen Endung versehen will, die von *.res abweichen (z.B. *.r32 für 32-Bit-Resourcendateien). Hierfür startet man QuarkzBatch mit dem Befehl

qzbatch rescomp.bat "@brcc32 $$c /fo$$p$$b.r32" *.*

Durch diesen Befehl erhält man eine Batchdatei mit Namen "rescomp.bat". Wenn z.B. die Dateien "unit1.res" und "unit2.res" gefunden wurden, dann sieht "rescom.bat" so aus:

@echo off
brcc32 c:\test\unit1.res /foc:\test\unit1.r32
brcc32 c:\test\unit2.res /foc:\test\unit2.r32

Ein weiteres Anwendungsbeispiel ist das Durchnummerieren von Bilddateien. Mit dem nachfolgenden Befehl wird eine Batchdatei erzeugt, die beim Aufruf alle *.jpg- und *.jpeg-Dateien des Verzeichnisses in Dateinamen der Form bild0001.jpg, bild0002.jpg, etc. umbenennt. Der Schalter /o bewirkt, daß die Dateien vor der Erzeugung des Batches sortiert werden.

Hier werden die Anweisungen direkt übergeben und nicht aus einer Vorlagendatei geholt, was durch ein "@" als erstes Zeichen der Vorlage gekennzeichnet wird. Die einzelnen Macros werden hierbei mit "$$" und nicht mit "%%" angegeben.

qzbatch bilder.bat "@ren $$f bild$$n4$$e" *.jpg;*.jpeg /o

Die resultierende Batchdatei sieht dann z.B. folgendermaßen aus:

@echo off
ren dcf01.jpg bild0001.jpg
ren Dcf02.jpg bild0002.jpg
ren TEST_X2.JPEG bild0003.jpeg

Wenn die Anweisung, die direkt übergeben wird mehrere Zeilen beinhaltet, dann werden die einzelnen Zeilen durch "&&" getrennt. Wenn die Anweisung auch Anführungszeichen besitzt, müssen diese als "^" maskiert werden. Das nachfolgende Beispiel erzeugt eine Batchdatei, die die Dateinamen und Pfade von JPEG-Dateien auflisten soll.

qzbatch bilder.bat "@echo Dateiname: ^$$f^&&echo Verzeichnis: ^$$p^"
*.jpg;*.jpeg /o

Die resultierende Batchdatei sieht dann z.B. folgendermaßen aus:

@echo off echo Dateiname: "dcf01.jpg"
echo Verzeichnis: "c:\bilder"
echo Dateiname: "dcf02.jpg"
echo Verzeichnis: "c:\bilder"
echo Dateiname: "TEST_X2.JPEG"
echo Verzeichnis: "c:\bilder"