The trick I use to avoid dealing with anything fancy here is to just launch Emacs from the shell that _has_ run shell.bat, so you know it has the same environment set up. There is probably a way to force Emacs to itself run shell.bat at startup or something fun like that, but I try not to ask Emacs to do anything more than it has to do, it's very fragile :/
- Casey