Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

DOS PROMPT Befehl... mit Batch-Quelldatei und Zeilennummer

Mdl / 5 Antworten / Flachansicht Nickles

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

bei Antwort benachrichtigen
Mdl xaver4 „Hi Mdl, na gut, ich hätte als Beispiel-Suchstring ...“
Optionen

Hallo Xaver,

natürlich habe ich inzwischen bei meinen verschachtelten Batchdateien die entspr. Stelle gefunden, wenn es auch ein bißchen gedauert hat.

Wenn ich es richtig sehe, zielt Deine Lösung darauf ab, nach jeder Zeile in den Batchdateien eine Debug-Zeile einzufügen.

Ich erinnere mich schwach daran, so etwas über ein Programm mal gemacht zu haben. Könnte aber sein, dass ich dabei auf das Problem gestoßen bin, dass eine ErrorLevel-Prüfung im Originalfile durch eine die dazwischengeschobene Zeile nicht mehr funktioniert hat. Bin mir aber nicht so ganz sicher, da evtl. manche Befehle errorlevel nicht beeinflussen...

Wenn ich mal ein bißchen Ruhe finde, werde ich aber Deine Idee mal genauer anschauen. Pipes habe ich bisher noch nicht groß verwendet.

Ich habe mir vor einiger Zeit eine DOS-Box-Ersatztool (TakeCommand) gekauft, mit dem man u.a. Batchprg. debuggen kann, d.h. Zeile für Zeile ausführen. Das hat zwar ein paar Erweiterungen für PROMPT, aber eben nicht die gewünschte. Ich glaub, ich frag da einfach mal nach, ob eine solche Erweiterung auch eingefügt werden kann...

Viele Grüße,

Mdl 

bei Antwort benachrichtigen