Batch Inhalt des DOS-Fensters in .txt schreiben

madferit

Newbie
Registriert
Sep. 2012
Beiträge
3
Hallo zusammen,

ich habe auf der Suche nach einer Antwort bereits Google bemüht, allerdings bringt mich die standardmäßige Antwort

---------------------------------------
<Befehl> > C:\test.txt
<Befehl2> >> C:\test.txt

> = Datei erstellen
>> = Text an Datei anhängen
---------------------------------------

auf die Frage, wie ich den Output einer Funktion, der im DOS-Fenster erscheint, in eine .txt.Datei schreiben kann, nicht wirklich weiter.

Mein Problem sieht wie folgt aus: Ich rufe mittels Batch-Datei mehrfach ein Programm namens "prog" auf, welchem ich eine Inputdatei (.in) übergebe, und das mir ein ausführliches Ergebnis in eine Outputdatei (.out) schreibt:

prog -f frage.in > antwort.out

Zusätzlich (!) erhalte ich im DOS-Fenster eine kurze und für mich relevante Version des Ergebnisses (also nicht das, was in die .out-Datei geschrieben wird!). Da ich die Funktion aber hinreichend oft per Schleife aufrufe, gelange ich schnell an die Grenzen der DOS-Fenstergröße (Rauskopieren klappt also nicht mehr), weshalb ich den Inhalt des Fensters gerne in eine .txt-Datei rausschreiben würde. Mit dem genannten Vorschlag bekomme ich das allerdings nicht hin, da ich mit dem Symbol ">" ja den Namen der Datei angebe, in die das ausführliche Ergebnis geschrieben wird.

Hat jemand eine Idee oder einen Hinweis für mich?

Bereits jetzt vielen Dank für die Hilfe!

Gruß madferit :-)
 
prog "-f frage.in > antwort.out" > out.txt

Funktioniert das? Habe dein Problem nich ganz verstanden. Verwendet dein "Programm" das > Symbol oder was?

LG Tigerass
 
versteh nicht?

@echo off
rem Datei neu anlegen...
prog -f frage.in >antwort.txt
rem Datei erweitern...
prog -f frage.in >>antwort.txt
rem nochmals erweitern...
prog -f frage.in >>antwort.txt
 
Danke für die schnellen Antworten!

Leider funktioniert der Vorschlag "prog "-f frage.in > antwort.out" > out.txt" nicht. Es wird auch hier die ausführliche Ausgabe in die .txt-Datei geschrieben, nicht jedoch die kurze Ausgabe aus dem DOS-Fenster.

Bei meinem Aufruf "prog -f frage.in > antwort.out" übergebe ich ja dem Programm die Inputdatei "frage.in". Das Programm analysiert diese und schreibt das Ergebnis der Untersuchung in eine Datei, deren Namen ich mittels "> antwort.out" angeben muss. Das was in diese Datei geschrieben wird, hat aber nichts mit dem zu tun, was das Programm zusätzlich im DOS-Fenster ausgibt: Dort wird sozusagen nur ein "Fazit" der Untersuchung angezeigt. Genau das, was das Programm in das DOS-Fenster schreibt, möchte ich in eine .txt-Datei schreiben.

Ich hoffe, mein Problem ist nun einigermaßen nachvollziehbar :-)

Vielen Dank!
 
Ich möchte mal wieder darauf hinweisen, dass das, was du meinst kein DOS-Fenster ist, sondern höchst-
wahrscheinlich die NT-Konsole. DOS ist seit Windows XP kein Bestandteil von Windows mehr.

Davon abgesehen verstehe ich dein Problem nicht ganz, aber könnte es daran liegen, dass die Programme
einen Teil ihrer Ausgabe in stderr schreiben? Ich weiß nicht recht, ob cmd.exe das kann, aber in der Bourne-
shell kann man dafür a 2>b benutzen.
 
Zuletzt bearbeitet:
Also gibt Prog gar nicht in die Konsole aus, also kannst du es gar nicht in eine Textfile ausgeben. Was macht Prog eigentlich? Vielleicht lässt es sich anders lösen...
 
Sorry, das stimmt wohl, oben steht "cmd.exe". Also bitte gedanklich in meiner Frage "DOS-Fenster" durch "NT-Konsole" ersetzen.

Danke!
Ergänzung ()

Doch, das Programm gibt sowohl ein ausführliches Ergebnis aus (und schreibt dies in die .out-Datei), als auch einen kurzen Hinweis in der Konsole (im Prinzip sagt es dort dem Anwender nur, ob das Problem aus der .in-Datei gelöst werden konnte oder nicht. Der Nutzer kann dann der .in-Datei genauere Informationen entnehmen; mir genügt aber zunächst die kurze Konsolenantwort, nur bei Bedarf schaue ich mir dann die genaue Lösung in der .in-Datei an).
 
madferit schrieb:
prog -f frage.in > antwort.out

Zusätzlich (!) erhalte ich im DOS-Fenster eine kurze und für mich relevante Version des Ergebnisses (also nicht das, was in die .out-Datei geschrieben wird!). Da ich die Funktion aber hinreichend oft per Schleife aufrufe, gelange ich schnell an die Grenzen der DOS-Fenstergröße (Rauskopieren klappt also nicht mehr), weshalb ich den Inhalt des Fensters gerne in eine .txt-Datei rausschreiben würde. Mit dem genannten Vorschlag bekomme ich das allerdings nicht hin, da ich mit dem Symbol ">" ja den Namen der Datei angebe, in die das ausführliche Ergebnis geschrieben wird.

Hat jemand eine Idee oder einen Hinweis für mich?
Du kannst das, was Du als "zusätzliche relevante Version des Ergebnisses" bezeichnest mittels
Code:
prog -f frage.in > antwort.out [b]2>stderr.txt[/b]
in die Datei "stderr.txt" schreiben lassen.


HTH

BigNum
 
Zurück
Oben