Unfortunately, I realized that when using the great Batch function, it doesn't quite work the same as when processing a single file. When you have a single file, you can continue to optimize it through the use of multiple optimizers, thereby continuing to make the file smaller. However, you can't do this in Batch. When you try to run the same processed files through using a different optimizer, they won't necessarily get smaller; in many cases, they could get bigger!
The problems stems from the fact that the files are always compressed from memory instead of compressing the actual compressed data. Obviously, this is necessary for Riot in order to make adjustments to images before compression. But what if you already did those adjustments, or you don't need to do any? The way it stands, when you re-run the same files through batch with a different optimizer, the same uncompressed images will be compressed without any beneficial effect from the last optimizer used.
Some people might find the current method useful for making independent comparison tests of different optimizers on a fileset. But, I think other people could really enjoy the option of directly passing the source files to the external optimizer in order to try furthering the compression of those files. Obviously, in order to potentially maintain the source files used in batch, only a copy of them should be passed to the external optimizer, in a way like other files are handled for processing.
This feature would be an essential enhancement, since it would eliminate having to use the command line optimizers separately for post-optimization, which basically defeats the purpose of using Riot. It would also prevent file sizes from growing, which runs counter to the optimization process. Finally, all optimization efforts could be easily done with a GUI.