Passing multiple files to an external app

Hi everybody
I wonder if anyone else has this problem (or better still knows how to solve it).

I'm using DOpus 9.1.0.1.2947.x86 at the moment and have a custom command set up to invoke Mp3tag, the custom command string is:-
"c:\Program Files\Mp3tag\Mp3tag.exe" {filepath$}

This works perfectly - select file1; file2; file3 - click on the button and Mp3Tag opens with the 3 files.

If I upgrade to any later version using exactly the same custom command string gives me Mp3Tag opening with file1 only; close MpTag and it then reopens with file2; close again and it reopens with file3 and so on until all the selected files have been opened one at a time.

Thanks for reading.

You can probably make it work by adding @async, i.e.

@async "c:\Program Files\Mp3tag\Mp3tag.exe" {filepath$}

That tells Opus to run Mp3tag.exe once per filename without waiting for each copy to finish before running the next. If Mp3tag.exe passes additional filenames to the existing instance of itself then that will work. (And it sounds like it does if it used to work in older versions of Opus. There was a change in Opus to whether or not it waits for other programs to finish by default.)

There are also a couple of other ways Opus can pass multiple files to other programs: Using {allfilepath$} instead of {filepath$} will run the program once with a list of file paths, instead of running the program several times (once for each file). You can also run programs via DDE or pass them an automatically generated text file with the list of file paths inside of it. Which methods work depend on the program in question, but I think @async is the answer here so I won't type more. :slight_smile:

:smiley: Many thanks. Yes, that was it, adding the @async modifer fixed it.