Habe gerade in einem DOS-Batchfile, mit verschachtelten CALL-Aufrufen eine Fehlermeldung bekommen und muss jetzt mühsam die entsprechende Quelldatei/Zeile finden, in der dieser Fehler aufgetreten ist.
Dabei kam mir die Idee, dass doch eigentlich die Prompt-Funktion, d.h. der Text, der bei einer DOS-Eingabe als Prefix erscheint mir diese Information liefern könnte. Statt also z.B.
PROMPT $p$g
könnte so etwas wie
PROMPT $%current_batchfile%$%current_batchline%$g
stehen.
Dieser Befehl dient nur zur Verdeutlichung, was ich eigentlich will. Dass dies genau so natürlich nicht funktioniert ist klar. Aber vielleicht gibt es eine solche Funktionalität.
Dies wäre super-praktisch, weil man so direkt sehen würde, in welchem File und welcher Zeilennummer eine Fehlermeldung auftaucht.
Viele Grüße.
Mdl
Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge
Hi MdI,
was ich mit VARs in Prompt einbauen, verdeutlicht vielleich besser ein screenshot ...
ich habe tatsächlich in einem 'abseitigen' Backup-Ordner noch alte batches aus W95/98-Zeiten gefunden, in denen ich Abfragen des errorlevels benutzt hatte:z.B. #1 Fragt ab welches Laufwerk zugeordner werden soll:
- @echo off
- set key=
- keytest.com
- ******** Laufwerksbuchstabe erwartet *******
- for %%z in (97 98 99 100 101 102 103 104 105 106 107 108 109 110 111) do if errorlevel %%z set key=%%z
- for %%z in (112 113 114 115 116 117 118 119 120 121 122) do if errorlevel %%z set key=%%z
- *** usw. mit ' if not exist "LW" usw ***
z.B. #2 Liest vorhandene Dateien zum Drucken in einem Ordner, Anz. d. Ausdrucke kann angegeben werden:
- set ie=if errorlevel
- set die= do %ie%
- set str=0 1 2 3 4 5 6 7 8 9 10
- ...
- blabla (nacheinander die Druckdateien anzeigen)
- ...
- ******** call-Aufruf **** => Anzahl Ausdrucke? =>
- ******** hier wird der errorlevel z.B. auf den Wert 10 getestet ***
- ******** und 'n' übergeben ...
- :chk
- for %%n in (%str%)%die%%%n set n=%%n
- if "%n%==10" set n=9
- goto print
- ...
- blabla
Ich hatte deshalb gedacht, Du könntest auf ähnlichem Weg Dir eine Screenausgabe über den Prompt erzeugen (s. screenshot)
*** DOS-Box ? 'baust' du per batchaufruf alte games in windows ein?
vg
xaver