Jobs, Fortschrittsbalken
Donnerstag, den 22. April 2010 um 21:29 Uhr
Man möchte seinen Benutzern den höchstmöglichen Komfort bei Benutzung von Batchdateien bieten. Deshalb braucht man Fortschrittsanzeigen. Oder auch nicht.
Das ganze ist imo mehr eine Spielerei, als eine ernsthafte Fortschrittsanzeige.
Störend ist insbesondere das Fenster fü die waitstart.bat.


Runterladen, ausführen, verstehen.

START.bat startet den Vorgang.
Die ProgressBar ist hier nur beispielhaft.
Die Laufzeit wird abgeschätzt, hier 6 Sekunden. Für diese Zeitspanne wird eine ProgressBar vervollständigt.
Danach geht man in einen Zustand über, der auf die Beendigung wartet.
Das
if "%bar%"=="######" goto :shouldbedone
ist natürlich sehr gammelig. Da sollte ein Zähler hin, und die Bar sollte immer gleich lang sein.
Ich sehe schon, damit lässt sich wieder eine halbe Nacht verbringen.

@echo off
mode 40,15
color 9E

set bar=
del done>nul

start cmd /C waitstart.bat

:test
cls
set bar=%bar%#
echo %bar%
ping localhost -n 2 > nul
if "%bar%"=="######" goto :shouldbedone
IF NOT EXIST done goto :test

:shouldbedone
echo WARTE auf Beendigung...
ping localhost -n 2 > nul
IF NOT EXIST done goto :shouldbedone

echo FERTIG. endlich.
pause

waitstart.bat
Diese hier wartet auf Vollendung des Programms und schreibt dann eine Datei 'done'.
Ob man
start start /wait PROGRAMM.bat && echo done > done
verwenden kann, habe ich nicht ausführlich getestet. Es scheint zu funktionieren, sodass man sich die waitstart.bat vllt auch sparen kann.
@echo off
mode 50,10

echo.
echo PROGRAMM laeuft...
echo.

start /wait cmd /C PROGRAMM.bat > nul
echo done >done

PROGRAMM.bat ist unwichtig, und steht hier nur Anstelle eines Programms.
Unser Programm braucht heute ca. 10 Sekunden.
@echo off
mode 50,10
cls
echo ICH BIN EIN PROGRAMM
ping localhost -n 10 > nul