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



我有一个Windows批处理脚本,该脚本仅调用C编译器的VCAVARS32,根据工作目录名称来推论我的C程序的名称,从命令 - 行,然后从命令行编译并运行我的程序(如果您知道USACO是什么,我希望此脚本可以帮助我快速自动化测试)。

该脚本可以正常工作一段时间,但是在我称之为几次之后,它开始抱怨

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

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

现在我的批处理脚本现在几乎像这样(我也有很多评论和实际脚本中的一些gotos,以使其更方便,例如,如果%myFolder%.in已经存在,请不要运行more > %myFolder%.in):

 call "C:Program Files (x86)Microsoft Visual Studio 12.0VCbinvcvars32.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,现在我不再遇到这个问题了。

最新更新