我有一个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
如果还没有运行,现在我不会再遇到这个问题了。