KnowHow: Batching
Normalerweise zieht man sich dabei, pardon der Batchdatei, den Boden unter den Bytes weg ! Hat nämlich diese Batchdatei ihren Stammplatz in dem Verzeichnis, in dem alle Batchdateien stehen und dieses Verzeichnis muß vorübergehend gelöscht werden, so kann das DOS die entsprechende Batchdatei nicht mehr wiederfinden und bricht etwa mit folgender Meldung ab:
Diskette mit Stapeldatei einlegen ! Wenn bereit eine beliebige Taste drücken.
Da aber die Batchdatei sich selbst ausradiert hat, kann man soviele Tasten drücken wie man will. Denn das DOS wird diese Batchdatei nicht mehr finden ! Einzig der Abbruch mit <STG>+<C> hilft kurzfristig aus dieser Misere
herauszukommen. Die restlichen geplanten Befehle müssen dann von Hand eingegeben werden, damit man die Ordnung wiederherstellen kann.
Ich habe dieses schon mehrmals erlebt und eine Lösung geschaffen, die die Batchdatei aus dem kritischen Verzeichnis verlagert:
@echo off if %1.==. goto err copy c:\batch\%1.bat c:\>nul c:\%1 %2 %3 %4 %5 %6 %7 %8 %9 :err echo Aufruf mit: echo BATCH Batchdatei Parameter
Möchte ich also das Verzeichnis BATCH mit meiner Batchdatei „DEFRAG.BAT“ defragmentieren, so starte ich diesen Vorgang mit:
BATCH DEFRAG \BATCH
Die Routine „BATCH.BAT“ kopiert daraufhin „DEFRAG.BAT“ in das Hauptverzeichnis von C: und startet anschließend „DEFRAG.BAT“ vom Hauptverzeichnis von C:. Zwar erfolgt dieser Start nur mit maximal acht Parametern, aber das dürfte in den meisten Fällen auch genügen.
Nachdem die eigentliche Defragmentierung abgeschlossen wurde, müsst Ihr die „DEFRAG.BAT“ eigenhändig aus dem Hauptverzeichnis von C: entfernen, weil „DEFRAG.BAT“ nicht rekursiv programmiert wurde !
Lars Aschenbach