Printout Header

HowTo:


Fortschrittsanzeigen für VB Scripts mit Text-basierter Ausgabe


Manchmal werkeln Skripte lange vor sich hin, ohne dass an der Oberfläche etwas davon sichtbar ist. Es werden zum Beispiel minutenlang Ausgaben in eine Datei geschrieben - der Benutzer jedoch fragt sich, ob das Skript noch läuft oder es schon abgestürzt ist. Abhilfe schaffen hier Skript-Bestandteile, die für einzelne Schritte einen Punkt ausgeben (jedoch ohne Zeilenvorsprung):


For i = 1 To 500
    Wscript.Stderr.Write(".")                   ' hier wird kein Zeilenumbruch erzeugt!
    WScript.Sleep(10)                           ' ein bisschen warten, sonst sieht man nix...

Eine Variante: Einen sich drehenden Balken, der eine Aktion anzeigt:


e = 0                                            ' Rotate Array initialisieren
rotate = Array("|", "/", "-", "\")

For i = 1 To 500
    e = e + 1 : If (e = 4) Then e = 0            ' e immer von 0-3 rotieren
    Wscript.Stderr.Write(rotate(e))              ' Zeichen hinschreiben
    WScript.Sleep(50)                            ' ein bisschen warten, sonst sieht man nix...
    Wscript.Stderr.Write(Chr(8))                 ' danach mit Backspace löschen
Next

Achtung: Die hier vorgestellten Tipps gelten für Skripte, die mit cscript aufgerufen werden. Verwenden Sie stattdessen wscript, bekommen Sie 500 MsgBox-Ausgaben, die bestätigt werden müssen.



zurück zum Verzeichnis der Script-FAQs