I would like to run two programs simultaneously from a batch file, and redirect the first program's output into a text file like:

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

While the programs run as expected, all output is shown on stdout.

link|improve this question
This ought to work. Without knowing anything, I wonder if 1st.py is doing something funny with output. – zpletan Sep 21 '11 at 17:17
No, but it writes to stderr. – none Sep 21 '11 at 17:25
That's why—> only redirects stdout (I think). In any case, it looks like you already have what you need. – zpletan Sep 21 '11 at 20:51
feedback

2 Answers

up vote 3 down vote accepted

You might need to do it this way:

start cmd /c python 1st.py arg1 arg2 ^> out.txt
link|improve this answer
Thank you, but it does not work for me (out.txt is not even created in the local directory) – none Sep 21 '11 at 17:52
I tested it with CScript and a VBscript, so the idea is sound. Are you doing something "extra" in your command line that's not listed here, like double quotes? – Patrick S. Sep 21 '11 at 18:19
Sorry, something went awfully wrong - it works! – none Sep 21 '11 at 18:27
feedback

Redirection is applied to the start command, but somehow not to the cmd.exe instance it runs.

If the > operator is escaped, everything should work:

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

(If you want to redirect stderr as well, use 2^> for it.)

link|improve this answer
Thank you, but it does not work for me. – none Sep 21 '11 at 17:52
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.