I would like to set the standard output of a batch script to go to a file. I would like to do this inside the script if possible.
Note: I do not want to do this: foo.bat > StdOut.txt
I would like to do something inside the script to redirect the output to a file
For example:
foo.bat
:: Redirect standard output to StdOut.txt
:: Insert batch code to do what I want here.
One way of doing it is the following. Use the call
command to execute a label in the script. Edit I realized the first version I posted does not seem to work in a cmd.exe prompt (I was using TCC). The following seems to work in both command processors:
@echo off
call :testitout > t.tmp
goto:eof
:testitout
echo Hi There
echo Goodbye
> is the standard, so you're more-or-less stuck with that; however, you can move it inside the batch file:
foo.bat:
@echo off
@echo Start File > StdOut.txt
@dir >> StdOut.txt
@echo End File >> StdOut.txt
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With