[Windows-Batch] Ausgabe von Programm laufend in Textdatei schreiben

Gast #2564518
Lesenswert?
• ▲
▼
Hallo zusammen,

wie kann ich mit Windows-Batchdateien die Ausgabe eines Programms 
laufend in eine Textdatei schreiben, während die Haupt-Batch noch 
weiterläuft?
Mein erster Versuch war: start /min programm.exe >> logfile.csv
Dann wird aber das Ergebnis des Programms im neuen Fenster am Bildschirm 
angezeigt.
Mit einer neuen Batchdatei (log.bat), die ich per start /min log.bat 
aufrufe (in log.bat: programm.exe >> logfile.csv) wird zwar das Ergebnis 
des Programms in die Datei geschrieben, jedoch erst nachdem das Programm 
beendet ist.
Das Programm sollte aber dauerhaft laufen und gibt alle paar Sekunden 
Werte aus, die dann jeweils sofort an die Logdatei angehängt werden 
sollen.
Gibt es dafür in Batch irgendeine Möglichkeit?
Gast #2564572
Lesenswert?
• ▲
▼
Hallo Ich,

die Umleitung in das Logfile müsste so funktionieren.
Die Datei wird dabei aber nicht sofort geschrieben, sondern das erfolgt 
erst wenn eine gewisse Datenmenge in der Pipe vorhanden ist.
Nach meinen Erfahrung spätestens nach 4kByte.

Gruss JensM
Gast #2564616
Lesenswert?
• ▲
▼
tail hab ich leider nicht unter Win XP.
Wie sollte ich das verwenden?

Wenn erst nach 4kByte gespeichert wird, bringt mir das nichts. Z.Zt. 
gibt es alle 900 Sekunden ca. 30 Byte aus, dann wäre das über ein Tag 
Verzögerung.
Gast #2564659
Lesenswert?
• ▲
▼
Hm...
1
prog | test_c "file.txt"
1
#include <stdlib.h>
2
#include <stdio.h>
3

4
int main (int argc, char **argv)
5
{
6
  int c;
7
  FILE *f=fopen(argv[0],"wb");
8
  if(f!=NULL)
9
  {
10
    while((c=getchar())!=EOF)
11
    {
12
      putc(c,f);
13
      fflush(f);
14
    }
15
    fclose(f);
16
  }
17
  return 0;
18
}

Nicht schön aber selten, kannst du das mal testen?
Angehängte Dateien:
Gast #2564745
Lesenswert?
• ▲
▼
> FILE *f=fopen(argv[0],"wb");
sollte wohl argv[1] heißen?
Ich werds versuchen.

Die PowerShell installieren ist zuviel Aufwand für so eine Kleinigkeit.

Zum tail-Befehl: Ich versteh immer noch nicht, wie ich den dann benutzen 
soll und was der genau macht.

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