我有一个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
,现在我不再遇到这个问题了。