here is the batch script :
@echo off
cls
setlocal EnableDelayedExpansion
title %~nx0 %1
color 0f
call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\vsvars32.bat"
call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat"
echo.
set linker_file="C:\my_compiler_libs.txt"
if %~x1==.cpp cl /EHsc @%linker_file% %1
if %~x1==.c cl /EHsc @%linker_file% %1
if %~x1==.sln msbuild %1 /m /p:configuration=debug /p:platform=win32
echo.
if exist "%~n1.obj" del "%~n1.obj"
echo.
echo 1: compile again
echo 2: run in cmd
echo 3: run
echo 4: exit
echo.
set /p answer=
if %answer%==1 call %~f0 %1
if %answer%==2 cmd /k "%~n1.exe"
if %answer%==3 "%~n1.exe"
if %answer%==4 exit /b
when i choose 1 to compile again it works and my_compiler.bat call itself as needed but only tree times if choose 1 the forth time it crashes with error the input line is too long any help please