Aaarrrggghhh, your batch file is awful.
UltraEdit is a Windows application and not a console application. Whenever a Windows application is started from within a batch file, a new process is created by Windows and the command line interpreter (cmd.exe) continues immediately with executing the batch file. So you start UltraEdit for processing a file with a macro and while UltraEdit is starting, a new instance of UltraEdit is started with a new file name and a macro to process, and while this second instance is starting a third instance of UE is started, ... awful, really awful.
May I suggest to use just following command line:
start "UE Batch Job" /min /wait "
Full path to uedit32\uedit32.exe" /fni c:\wget\*.* /m,e="c:\CRON\2.mac"
start is an internal command of cmd.exe designed for running Windows processes from within a batch file. The first parameter is usually an optional title for the console window opened when running command start. But if any parameter on command line must be enclosed in double quotes because of a space character, the first parameter must be a window title in double quotes or command
start will interpret the first string in double quotes as window title.
/min is a parameter of command
start and results in running the Windows process started with a minimized window.
/wait is another parameter of command
start and results in halting execution of the batch file until the called Windows application terminates.
The next command is the Windows application to start which is UltraEdit. It is better to specify it with full name and complete path as otherwise Windows has to find an executable with name
uedit32 in the directories listed on environment variable PATH. The PATH variable value (=list of directories) usually differs from your account to the system account used for running scheduled tasks.
/fni is a parameter for UltraEdit. It means
force
new
instance. By default the configuration setting
Allow multiple instances is NOT enabled and therefore if a second instance of UltraEdit is started and this second instance has read the current value of the configuration setting from uedit32.ini, it looks in list of running processes for an already running instance of UltraEdit and if found, sends this (first) instance a message with the file name to open, before the second instance exits. This single instance behavior is not good if macros or scripts should run in background, see
Always get error message when running a macro/script via command line parameter for details.
UltraEdit supports wildcards on command line and therefore
c:\wget\*.* is all you need to open all files in a folder at once in UltraEdit.
What you need to do now with this command line is to recode your macro a little to run on all opened files instead of active file only.
If your (first) macro inside macro file
c:\CRON\2.mac does not contain already a loop, you can surround your macro by
Loop
IfNameIs ""
ExitLoop
Else
your existing macro code
CloseFile Save
EndIf
EndLoop
With this code your macro is executed in a loop always on active file which is saved and closed. The loop stops if there is a file without name which is either a new, unnamed file (not in this case) or there is no file open anymore (as in this case).
If your macro contains already a loop, you have to put above code into a second macro stored together with your macro in same macro file. Instead of
your existing macro code put into this main loop macro:
PlayMacro 1 "case sensitive name of your macro"
This main loop macro named for example
RunOnOpenFiles must be defined on the command line:
start "UE Batch Job" /min /wait "
Full path to uedit32\uedit32.exe" /fni c:\wget\*.* /m,e="c:\CRON\2.mac/
RunOnOpenFiles"
By the way: If it is no problem when UltraEdit is started with UE main window being opened normally or maximized as on last exit, you can use in this case also just
"
Full path to uedit32\uedit32.exe" /fni c:\wget\*.* /m,e="c:\CRON\2.mac/
RunOnOpenFiles"