El problema es que al bat le pusiste ftp.bat
Entonces, cuando éste ejecuta el comando ftp, en realidad ejecuta el ftp.bat ya que este se suporpone al ftp.exe, y por eso se llama recursivamente.
Prueba renombrándolo a commands.bat
Entonces, cuando éste ejecuta el comando ftp, en realidad ejecuta el ftp.bat ya que este se suporpone al ftp.exe, y por eso se llama recursivamente.
Prueba renombrándolo a commands.bat