Autor Beitrag
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mi 02.12.09 18:47 
Hi,

mal das Standardproblem, nur andersrum:

Kurz gesagt möchte ich folgendes automatisieren:

ausblenden Kommandozeile
1:
programm.exe -option < input.txt					


(und natürlich trotzdem die Ausgabe abfangen)

Dabei will ich nicht mehr den Umweg über eine Datei gehen, sondern direkt das Programm auf stdin mit den Daten versorgen.

Aus dem üblichen GetConsolepOutput sowas zu bauen ist auch klar, nur: wie macht man dem Pipe begreiflich dass da jetzt EOF ist? Das Programm wartet da nämlich drauf um sich zu terminieren. Einfach nur die Write-Seite der Pipe schließen hilft nicht...
Andere Programme wiederum mögen das gar nicht, und stürzen ab/beenden sich sofort.

Was genau macht CMD da?

Hat da jemand funktionierenden Code?

Ich kann ggf. den bisherigen noch posten, der ist aber wenig interessant, und da ich nebenbei selber noch experimentiere, auch sehr im Fluss.

EDIT: hab ihn schon auf einen Heisenbug runtergehandelt, der ab und zu mal die Pipe zu früh schließt. Dabei war das hier recht hilfreich...


Danke,
Martok

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."