Windows批处理脚本在几次迭代后停止工作

我有一个windows批处理脚本,它只是为C编译器调用vcavars32,根据工作目录名称推导出我的C程序的名称,从命令行中保存用户的一些内容,然后编译并从命令行运行我的程序(如果你知道USACO是什么,我希望这个脚本能帮助我快速自动化testing)。

该脚本工作一段时间,但我打电话几次后,开始抱怨

The input line is too long. The syntax of the command is incorrect. 

它会停止工作,直到我closurescmd,然后重新打开一个新的cmd窗口。

我的批处理脚本现在看起来像这样(我也有很多的意见和一些gotos在我的实际脚本,使它更方便一些,例如不要运行more > %myFolder%.in if %myFolder%.in已经存在):

  call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat" for %%A in (".") do set "myFolder=%%~nxA" more > %myFolder%.in CL %myFolder%.c /nologo && %myFolder%.exe >nul && type %myFolder%.out del /q %myFolder%.exe %myFolder%.obj %myFolder%.out 

我可以让我的脚本每次都工作吗? 为什么我得到这个错误?

原来jeb的评论是正确的。

看起来vcvars.bat在每次运行的时候都会加入到path ,几次之后,我觉得它太长了。

我修改脚本只运行vcvars.bat如果还没有运行,现在我不会再遇到这个问题了。