How can I both pipe and display output in Windows' command line?
- by Bob
I have a process I need to run within a batch file. This process produces some output. I need to both display this output to the screen and send (pipe) it to another program.
The bash method uses tee:
echo 'ee' | tee /dev/tty | foo
Is there an equivalent for Windows? I am happy to use PowerShell if necessary.
There are tee ports for Windows, but there does not appear to be an equivalent for /dev/tty, which complicates matters.
The specific use-case here: I have a program (launch4j) that I need to run, displaying output to the user. At the same time, I need to be able to detect success or failure in the script. Unfortunately, this program does not set an exit code, and I cannot force it to do so. My current workaround involves piping to find, to search the output (launch4j config.xml | find "Successfully created") - however, that swallows the output I need to display. Therefore, I need some way to both display to the screen and send the ouput to a command - and this command should be able to set ERRORLEVEL (it cannot run asynchronously).