在Windows 7的批处理文件中使用start命令后,“没有足够的存储空间可用于处理此命令”

时间:2012-01-13 21:05:09

标签: memory batch-file command

我正在创建一个需要在单独的cmd窗口中打开第二个批处理脚本的批处理文件。如果我使用“call”命令而不是“start”但我不能在自己的窗口中启动脚本,我可以成功使用我的所有代码。我过去曾多次遇到此错误,并且始终与启动命令相关。我改变了我的工作方式,一切顺利。为什么start命令导致此错误,我该如何解决?下面是我的代码示例。

start "" /w "k:\Bundle Support files\record serial.cmd"

第二个批处理文件打开并完成除最后一个

之外的所有任务
goto :exit

:exit

我已经多次更改了文件中的最后一个命令,它总是通过整个批处理,但是完成该批处理的最后一个命令失败,“没有足够的存储空间可用于处理此命令”错误。这发生在多台机器(不同的硬件)和多个操作系统上。我试过IRPStackSize修复没有运气。有关为什么我收到此错误的任何建议?

谢谢, 凯文

3 个答案:

答案 0 :(得分:17)

我遇到了类似的问题,对我来说解决方案很奇怪。似乎将窗口标题设置为空(“”)会导致错误。

所以,而不是

start "" /w "k:\Bundle Support files\record serial.cmd"

start "Placeholder Name" /w "k:\Bundle Support files\record serial.cmd"

我无法测试这是否适用于您的情况(我怀疑这很重要因为您已经不在了)但希望这会帮助遇到任何类似错误的人。

答案 1 :(得分:0)

goto :exit替换为goto :EOF。不要定义EOF标签(它是预定义的)。

答案 2 :(得分:-1)

这是启动cmd时START命令的作用。如果您运行START cmd,您不会期望CMD立即退出 - 它可以随时使用。所以你要么调用一个cmd文件它会完成,要么你开始一个cmd,它将无法完成 - 但你可以使用EXIT命令完成它。 SEIPIA也正确回答了堆栈溢出的问题 - 而不是使用start“”filename.cmd,在引号之间添加一些内容作为标题 - 这将防止堆栈溢出错误。