Windows Batch Script: Redirect ALL output to a file
batch-file, dacapo, windows
Solution
You must redirect STDOUT and STDERR.
`command > logfile 2>&1`
STDIN is file descriptor #0, STDOUT is file descriptor #1 and STDERR is file descriptor #2. Just as "command > file" redirects STDOUT to a file, you may also redirect arbitrary file descriptors to each other. The `>&` operator redirects between file descriptors. So, `2 >& 1` redirects all STDERR output to STDOUT.
Furthermore, take care to add `2>&1` at the end of the instruction because on Windows, the order of redirection is important as `command 2>&1 > logfile` will produce an empty file, as Dawid added in the comments.
Problem
I am running various Java benchmarks and would like to archive the results. I execute the (dacapo) benchmark like this: ``` C:\VM\jre\bin\java -jar C:\benchmarks\dacapo-9.12-bach.jar %arg1% > %time::=% ``` I pass the type of benchmark in over a parameter, thats what %arg1% is. You can see that I am redirecting the output to a textfile. Unfortunately, the first and last line of the output is still printed in the console and not into the textfile: ``` ===== DaCapo 9.12 luindex starting ===== ===== DaCapo 9.12 luindex PASSED in 2000 msec ===== ``` Especially the last line would be important to have in the text file :) Is there a trick to force this behavior?