Dateiausgabe abfangen unter Win

OP #7562457
Lesenswert?

Hallo allerseits!

Das Problem ist folgendes, ich möchte ein Programm A aus einem Programm S heraus über die Kommandozeile starten und möchte dann wissen, ob Programm A das tut, was gestartet wurde. In Programm A gibt es Statusausgaben die ich dazu gerne abfangen würde. Leider gehen die nicht an die Standardausgabe/Kommandozeile sondern werden im Programm dargestellt, aber zumindest kann man einstellen, dass die Ausgabe in eine Datei erfolgen soll.

Meine Frage ist jetzt, ob es möglich ist unter Windows einen Dateinamen anzugeben, der dann die Ausgabe in die Kommandozeile umleitet? Oder wäre es denkbar eine tatsächliche Datei zeitgleich durch Programm S auszulesen? Oder drittens, kann man in Windows evtl. eine Art virtuelle Datei anlegen, deren Schreib- und Leseoperationen direkt an ein eigenes Programm gehen?

Oder hat jemand andere Ideen?

Dass die Ausgangslage nicht gut ist, ist klar. Ich brauch aber schnelle eine einfache Lösung :)

Danke!

Gast #7562541
Lesenswert?

Probiere es mal mit CON als Dateinamen. Das wird aber nur funktionieren, wenn das supergeheime Program (S wie Secret) die Ausgabe nicht puffert. Sonst kannst du die DLL Funktion fwrite verbiegen. Oder wenn das auch nicht geht, die EXE patchen.

Gast #7562700
Lesenswert?

Erstaunlich wie kompliziert sowas unter veralteten Betriebsystemen gehandhabt wird. Bei modernen OS ist das Standard Benutzerwerkzeug. StdIn und StdOut sind einfach Dateien. Austauschbar mit anderen Schnittstellen wir, BT, Seriell, etc. MS ist für Masos. Mir läuft schon beim Gedanken an die Installation die Scheibe an.

#7562731
Lesenswert?

Xanthippos schrieb:

unter veralteten Betriebsystemen

Augenblick mal, das von dir beschriebene System stammt aus den Unix IV von 1972.

Win schleppt immer noch Entscheidungen aus dem QDOS von 1980 mit sich rum.

Das kompliziertere MS System ist moderner.

Du verwechselst "Alter" und "Modernität". Nur weil Du Deinen Faustkeil heute herstellst, ist er dennoch nicht moderner als ein Sturmgewehr.

Gast #7562854
Lesenswert?

Linux und Windows sind beide Modern, weil sie fortlaufend weiter entwickelt wurden und den aktuellen Stand der Technik darstellen.

Welches OS zuerst entwickelt wurde, spielt für den Begriff keine Rolle mehr.

#7563565
Lesenswert?

Heinz B. schrieb:

Wenn beide Programm nicht gerade gleichzeitig auf die Datei zugreifen, müßte das schon gehen. Vorausgesetzt, daß Programm A die Datei nach dem Schreiben ordentlich schließt und nicht erst beim Beenden.

Das geht auch gleichzeitig, wenn OpenFile/CreateFile entsprechend benutzt wurden.

https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea FILE_SHARE_READ

https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-openfile OF_SHARE_DENY_READ

(Firma: Privat) #7563600
Lesenswert?

von Maxe schrieb:

aber zumindest kann man einstellen, dass die Ausgabe in eine Datei erfolgen soll.

Und den Inhalt dieser Datei willst du dann per Kommandozeile sichtbar machen?

der dann die Ausgabe in die Kommandozeile umleitet?

Die Kommandozeile sieht dann so aus:

type Datei.txt

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren