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

时间:2014-02-01 03:22:53

标签: windows batch-file cmd

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

该脚本可以正常工作一段时间,但在我调用它几次之后就开始抱怨了

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

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

我现在的批处理脚本现在几乎就是这样(我的实际脚本中也有大量的注释和一些让我更方便一些,例如,如果不运行more > %myFolder%.in %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

我每次都可以让我的脚本工作吗?为什么我会收到此错误?

1 个答案:

答案 0 :(得分:1)

原来jeb的评论是正确的。

看起来vcvars.bat每次运行都会path添加,经过几次,我猜它太长了。

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