it-swarm.com.de

Windows CMD Batch, START und Ausgabeumleitung

Ich möchte zwei Programme gleichzeitig aus einer Batch-Datei ausführen und die Ausgabe des ersten Programms in eine Textdatei umleiten, z.

start python 1st.py arg1 arg2 > out.txt
start 2nd.exe %1 arg2 arg3

Während die Programme wie erwartet ausgeführt werden, werden alle Ausgaben auf stdout angezeigt.

30
none

Möglicherweise müssen Sie dies folgendermaßen tun:

start cmd /c python 1st.py arg1 arg2 ^> out.txt
30
Patrick Seymour

Die Umleitung wird auf den Befehl start angewendet, jedoch nicht auf die cmd.exe-Instanz, die er ausführt.

Wenn der Operator > maskiert wird, sollte alles funktionieren:

start 1st.py arg1 arg2 ^> out.txt

(Wenn Sie auch stderr umleiten möchten, verwenden Sie 2^> dafür.)

7
grawity

Außerdem funktioniert dies für mich, wenn Sie sowohl stderr als auch stdout umleiten möchten

rufen Sie delay.bat ^ 1 ^> log.txt ^ 2 ^> ^ & ^ 1 auf

Es sieht so aus, als müsste jeder Charakter entkommen. Dieser Befehl sieht normalerweise so aus:

delay.bat 1> log.txt 2> & 1

5
sandos

Der Trick bestand für mich darin, den Befehl in eine separate Batch-Datei zu verschieben:

rem this first batch file triggers the second one:
start the_second.bat arg1 arg2 out.txt

the_second.bat sieht dann so aus:

python 1st.py %1 %2 > %3
4
Florian Straub