Standard
Ant doesn't provide any loop syntax, and rightfully so. It's not meant to be a programming language. However, much of the need for looping would be reduced if you could take a fileset or patternset and have a task act on each member individually ... maybe by using an antcall. Sometimes the tasks you want don't support filesets, and sometimes (as with unjar) they interpret them differently from what you need.
The bad news is I can't think of anyway to do accomplish this in the current Ant. However, we've identified a gap that could conceivably be filled. Some day, I'm going to learn how to develop Ant tasks on my own. In the meantime, you could try submitting your idea to the Ant team.