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"
