【发布时间】:2014-05-02 16:19:55
【问题描述】:
我有一个 Windows 批处理脚本,它只为 C 编译器调用 vcavars32,根据工作目录名称推断我的 C 程序的名称,从命令行保存用户的一些内容,然后编译并运行我的程序从命令行(如果你知道 USACO 是什么,我希望这个脚本能帮助我快速自动化测试)。
该脚本在一段时间内运行良好,但在我调用它几次后它开始抱怨
The input line is too long.
The syntax of the command is incorrect.
它会停止工作,直到我关闭 cmd 然后重新打开一个新的 cmd 窗口。
我的批处理脚本现在看起来很像这样(我的实际脚本中还有大量 cmets 和一些 goto,以使其更方便一些,例如,如果 @987654323 则不要运行 more > %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
我可以让我的脚本每次都能正常工作吗?为什么会出现此错误?
【问题讨论】:
-
%myFolder%在大多数地方都没有被引用 - 它可以有空格或&等吗?问题也可能出在vcvars32.bat -
vcvars每次在path变量中附加一些自己的目录。
标签: windows batch-file cmd