Default interpreters from Microsoft are done in a way, that causes them exit when they reach EOF. If rake is another batch file, command interpreter switches to it and exits when rake interpretation is finished. To prevent this write:
@echo off
cls
call rake
pause
IMHO, call operator will lauch another instance of intepretator thereby preventing the current one interpreter from switching to another input file.