WinRAR Compress/Decompress Buttons (and other)

(Aside: There's no need for the @sync there, by the way. It won't have any effect.)

{f} will only turn into a single filename so if you have three files selected (File1.rar, File2.rar and File3.rar, all in C:\ for the sake of argument) then Opus will turn your line into three lines, one for each file:

"C:\Program Files\WinRAR\WinRAR.exe" x C:\File1.rar "E:\tmp"
"C:\Program Files\WinRAR\WinRAR.exe" x C:\File2.rar "E:\tmp"
"C:\Program Files\WinRAR\WinRAR.exe" x C:\file3.rar "E:\tmp"

It should now be obvious why you get three WinRARs appearing, one after the other (or all at once, depending on how WinRAR is written; some programs run in the background and it's up to the program, not Opus).

If you want to only get a single WinRAR then, of course, you need to pass all of the filenames to it at once somehow. There are several ways to do this with Opus, {F} being the usual one. If you use {F} instead of {f} then Opus will list all three files on a single command:

"C:\Program Files\WinRAR\WinRAR.exe" x C:\File1.rar C:\File2.rar C:\File3.rar "E:\tmp"

I don't know whether WinRAR will recognise that command line, though. If it doesn't then you might have to try something different. Opus can also write the list of filenames into a temporary text file, then pass that text file to the program (see here), which works with some things (but is much less common).

I've filed a feature request for a way to disable the progress dialog for certain functions but I think if you make the command run as a single line then it may suppress the progress dialog anyway so try the stuff above and see how you get on.

Use {f|noext} instead of {f}