AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Konsolenausgabe auslesen von bat Datei

Ein Thema von NickelM · begonnen am 26. Okt 2010 · letzter Beitrag vom 31. Okt 2010
Antwort Antwort
Seite 1 von 3  1 23      
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#1

Konsolenausgabe auslesen von bat Datei

  Alt 26. Okt 2010, 22:01
Hallo zusammen,

Ich hab mal ne frage ob es die möglichkeit gibt den Konsolenoutput von einer Bat Datei auszulesen bzw. zu kopieren?

Folgender Hintergrund:

Die Bat datei führt eine Jar Datei mit Parametern aus.
Die Jar Anwendung stellt einen Server da. (Jar Datei habe ich net geschrieben auch net die Bat)
Wenn der Server nun einen Fehler rausschmeist und "down" geht, bleibt die Console offen und Server bleibt down.
Jetzt wollte ich eine Konsolenanwendung schreiben, die dne Fehler ode abfängt und ihn sich merkt und dne Server neustartet.
Sozusagen er startet die Bat datei (das hab ich schon hinbekommmen xD lol) soll dan warten auf einen Fehler, server neustarten und dan wieder auf Fehler warten usw.

Geht überhaupt sowas? also mit WaitforIdleInput (oder sowas) klappt es schonmal nicht. Und WaitForSingelObject geht nur wenn die Console geschlossen wird xD
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#2

AW: Konsolenausgabe auslesen von bat Datei

  Alt 26. Okt 2010, 22:06
Ich hab mal ne frage ob es die möglichkeit gibt den Konsolenoutput von einer Bat Datei auszulesen bzw. zu kopieren?
Das kommt drauf an. Wenn du mit CreateProcess (et al.) die BAT-Datei ausführst (also implizit via cmd.exe), kannst du bei der Prozesserstellung Pipes anstelle der Standardein-/ausgabekanäle angeben. Und von denen kann man natürlich lesen was ansonsten auf der Konsole landen würde.

Aus meiner Delphi-Zeit von vor 2006 erinnere ich mich aber an Komponenten die versprachen das ranpappen der Pipes und die Prozesserstellung stark zu erleichtern. Vielleicht kann dir da jemand anderes einen Tip geben.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Konsolenausgabe auslesen von bat Datei

  Alt 26. Okt 2010, 22:17
Also mit name Pipes hab ich schonmal was gelesen. Aber noch nie damit gearbeitet geschweie den verstanden.
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

AW: Konsolenausgabe auslesen von bat Datei

  Alt 26. Okt 2010, 22:22
also für den Anfang hab ich mal einen Tipp, der bestimmt hilft: hier

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Konsolenausgabe auslesen von bat Datei

  Alt 27. Okt 2010, 06:04
Naja, der Code ist Cool..nur aus unerklärlichzen gründen funkt sie net mit der Bat datei. Es starten kein output...habs normal versucht zustarten geht...im hintergrund die java anwendung starten aber es kommt garkeine Konsolenoutput von der bat datei. Es wird auch nichts aufgezeichnet...nichts...

EDIT: Okay scheint an der bat datei zuliegen...der direkter output der bat wird angezeigt. Das Problem ist, beim normalen ausführen wird in der Console das angezeit was sozusagen die Java Datei ausspukt...aber die sache direkt über java zulaufen funkt auch nicht...das gleiche mit der client bat (vllt das es an dem server liegt) nein auch nicht...der output der jar datei wird nicht ausgeben...
Falls es jemand kennt, es geht um einen Minecraft Server.
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.

Geändert von NickelM (27. Okt 2010 um 06:39 Uhr)
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#6

AW: Konsolenausgabe auslesen von bat Datei

  Alt 27. Okt 2010, 10:57
Das könnte sein was du suchst: http://maxxdelphisite.free.fr/doscmd.htm

Im Delphi-Forum geistert irgendwo auch eine D2009-Variante davon rum falls du die brauchst

EDIT: Hier die 2009er-Version: http://www.delphiforum.de/viewtopic.php?p=556365#556365

Geändert von Andreas L. (27. Okt 2010 um 11:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#7

AW: Konsolenausgabe auslesen von bat Datei

  Alt 27. Okt 2010, 10:59
EDIT: Okay scheint an der bat datei zuliegen...der direkter output der bat wird angezeigt. Das Problem ist, beim normalen ausführen wird in der Console das angezeit was sozusagen die Java Datei ausspukt...aber die sache direkt über java zulaufen funkt auch nicht...das gleiche mit der client bat (vllt das es an dem server liegt) nein auch nicht...der output der jar datei wird nicht ausgeben...
Ich hatte ernste Probleme das zu parsen. Muß wohl mal meinen Deutsch-Sprachprozessor überprüfen lassen.

Die Frage wäre dann jetzt wie das Java-Programm gestartet wird. Per start/cmd.exe? Also in einer anderen Konsole? Oder in der gleichen Konsole? Denn eins ist klar, mit der o.g. Methode kannst du nur innerhalb der von dir gestarteten Konsole Ausgaben abfangen und Eingaben tätigen.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Konsolenausgabe auslesen von bat Datei

  Alt 27. Okt 2010, 11:20
hab ich auch schon gemerkt...wenn ich den Client starte, da wo ein paar echo ausgaben sind, die werden aufgefangen.

Also.. Die Bat datei führt eine Jar Datei mit Commandline aus. Da es Bat ist, wird diese ja in der cmd.exe ausgeführt.
Beim Server bekomm ich halt infos ob alles hochgefahren ist usw.

Wenn ich nun mit der Prozedur die Bat datei öffne bekomm ich garkeine Ausgaben, auch nicht nach schliessen der Konsolenanwendung
In der bat steht echo off. Es werden trotzdem Dinge beim normalen Ausführen in die Konsole geschrieben. Diese muss ich abfangen. Diese kommen vermutlich von der Java.exe. So direkt den Server mit der java.exe mit den gleichen Commands wie die bat datei auszufüren, funkt auch nicht.....

Weis langsam nicht mehr weiter. Ich glaub ich lass es einfach, weil irgendwie komme ich einfach nicht an die Ausgaben.
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#9

AW: Konsolenausgabe auslesen von bat Datei

  Alt 27. Okt 2010, 11:22
Hmm, irgendwie hast du meine Fragen sehr elegant umschifft.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#10

AW: Konsolenausgabe auslesen von bat Datei

  Alt 27. Okt 2010, 12:24
hmm..wenn du meinst..erlich gesagt hab ich von createprozess usw nicht viel ahnung. Arbeite sogut wie nie damit.
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz