|Rename you script, naming script after a command(especially one that is used in the script) can cause many problems.|
Open a cmd window an type in "set path" you should get two variables displayed(there may be more) "path" and "pathext".
A good deal of commands tend to be external (i.e they are actually .exe's, .com's, ect.), rasdial is one of them. when an external command is called first the cmd processor looks in the current directory, then each of the semicolon delimted directories are checked.
These directories are checked for the command name with the pathext file extensions, in the order they are listed as soon as it finds a match it calls it and quits.
In your case of "rasdial.bat" something like this happens.
cmd: it's not built into me, I'll look for it!
cmd: First I'll start with the current directory,
cmd then go over the path directories.
cmd: Checking the current directory for:
cmd: run rasdial.bat
cmd: I found rasdial so I'll stop looking.
Of course after which rasdial.bat asks for rasdial again, hence the setlocal recursions.