@m2306 - I was thinking about this over the weekend and there might be another way but requires a bit more work. I don't think it would be to much really and only initially. If you're set and good to go then no worries.
Take CPS games for example. Basically if you had a list of parent ROM names in a text file with one per line like so:
...
1941
avsp
ddsom
dino
sf2
etc.
With a list like this it would be pretty easy to pull parent ROMs only or parent + clones.
The advantage being is you only need to track parent ROMs and not clones as they are automatically linked to the parent.
So basically by listing the 70 or 80 CPS games you could generate new DATs after an update with very little changes after the initial setup.
I don't believe parent ROMs change to often and if they do it would be only a matter of changing the name in the list like sf2 to sfi2 for example. The clones will be automatically linked.
The clones make up a much larger part of the games list by several hundred so it's nice that you only need to track the parent.
I think a lot of filter lists and batch files that copy ROMs are based of specific DATs in time and are outdated with the next release whereas this would allow you to be a bit more dynamic with new releases and generate a current correct ROM set.
You could also stack lists to make a master list. Like combine the CPS and Neo Geo list or CPS, Neo Geo plus favorites, etc.
I'm not sure of that makes sense but I believe it would work fairly well.