pepemosca wrote:Also, I don't trust the UE DOS capture, because when I run more than one compilation... I don't get every single output on UE, some of the outputs are just missing.
The feature to capture output from the devices
stdout and
stderr of the called tool works perfect. Of course uedos32.exe can't capture output printed to
stdout and
stderr of another environment. So if some of your tools create a new console process (using cmd.exe, dos4gw.exe, etc.), uedos32.exe can't capture their output. That's the same as trying to capture from within batch file A started from Windows Explorer the output of batch file B started from within UltraEdit or also from Windows Explorer. Batch file A is running in a different process environment than batch file B. Both have
stdout and
stderr, but not shared, they are separated. Using free
Process Explorer from
SysInternals (Microsoft) which is an enhanced task manager, you can see not only the running processes, you see also the process tree and with right clicking on a process, opening Properties and clicking on tab Environment you can see the CURRENT environment variable memory of this process.
So when you print with command
type whatever your tool has written into a text file, you can be sure that uedos32.exe capture it always correct.
However, I created a batch file containing only the word
set, added a tool to call this batch file from within UltraEdit and captured the output of this batch file to a document window. Now I could see which environment variables are defined on start of a console application from within UltraEdit.
The only environment variable helpful for your need is
UEHELPATH containing full name of the help file of the instance of UltraEdit starting the tool. The help file is stored usually in the same directory as the UltraEdit executable and has the same name as the UltraEdit executable, just the file extension is CHM instead of EXE. So all to do is replace the file extension CHM by EXE to get full name of UltraEdit executable. This can be done with the command line:
set UENAME=
%UEHELPATH:~0,-3%exeNow the environment variable
UENAME contains full name of the UltraEdit executable and so you could use
"%UENAME%" /fni "%EclipseMSG%"
:~0,-3 is explained in help of command
set. Just use in UltraEdit
Advanced - DOS Command with the command
set /? to get the help of this command displayed in UltraEdit for studying.
There is also another method of opening a file after a user tool run in the same instance of UltraEdit. You can run the user tool always from within a macro stored in an automatically loaded macro file or from within a script added to the script list. This gives you the possibility to open the created output file from within the macro or script after the tool execution has finished. UltraEdit waits always for the end of the user tool execution for user tools with
DOS program checked. But it is not possible to execute a macro or script by clicking on a symbol on the toolbar. So the macro or script must be executed by hotkey or by double clicking on the macro/script name in the macro/script list. Scripts can be also executed from the Scripting menu.