Just for fun, check
my home node here on perlmonks -- there's a pointer there to a script called "shloop", which provides a perl-based approach to what you want to do, and also has some handy extras (like what if you want to do something like "some_proc < orig/file.orig > new/file.new" on hundreds of files...); and it works on windows. Your particular case could be handled -- if you have the windows port of the GNU "find" utility -- as follows:
find . -name '*.foo' | shloop -e 'doit -switches'
(If you don't have the windows port of GNU find, you can write something in perl using File::Find, of course...)
update: fixed the usage on gnu find.