在 Windows 7 的批处理文件中使用启动命令后,“没有足够的存储空间来处理此命令”
Posted
技术标签:
【中文标题】在 Windows 7 的批处理文件中使用启动命令后,“没有足够的存储空间来处理此命令”【英文标题】:"not enough storage is available to process this command" after using the start command in a batch file with windows 7 【发布时间】:2012-02-10 01:09:39 【问题描述】:我正在创建一个批处理文件,该文件需要在单独的 cmd 窗口中打开第二个批处理脚本。如果我使用“call”命令而不是“start”命令,我可以成功使用我的所有代码,但这不会在其自己的窗口中启动脚本。我过去曾多次收到此错误,并且始终与启动命令有关。我改变了我做这个过程的方式,一切都很好。为什么启动命令会导致此错误,我该如何解决?下面是我的代码示例。
start "" /w "k:\Bundle Support files\record serial.cmd"
第二个批处理文件打开并完成除了最后一个之外的所有任务
goto :exit
:exit
我已多次更改文件中的最后一个命令,它总是通过整个批处理,但完成该批处理的最后一个命令失败,并出现“没有足够的存储空间来处理此命令”错误。这发生在多台机器(不同的硬件)和多个操作系统上。我尝试了 IRPStackSize 修复,但没有成功。关于我为什么会收到此错误的任何建议?
谢谢, 凯文
【问题讨论】:
使用 goto:goodbye 和 :goodbye 作为标签。退出可能作为保留字处理 @rene 我在保留它时遇到了问题。有时也结束。goto goodbye
和 :goodbye
是个好建议。我通常使用 Fin。
感谢您的建议,但我想我的问题可能不够清楚。我试图弄清楚“start”命令是如何工作的,以及为什么当我使用它时,“Started”的批处理文件不会完成不管最后一个命令是什么。我将收到“没有足够的存储空间来处理此命令”错误。启动可执行文件时,我可以成功使用 start 命令。问题在于将它与批处理文件一起使用。
【参考方案1】:
将goto :exit
替换为goto :EOF
。不要定义 EOF 标签(它是预定义的)。
【讨论】:
感谢您的建议,但我想我的问题可能不够清楚。我试图弄清楚“start”命令是如何工作的,以及为什么当我使用它时,“Started”的批处理文件不会完成不管最后一个命令是什么。我将收到“没有足够的存储空间来处理此命令”错误。启动可执行文件时,我可以成功使用 start 命令。问题在于将它与批处理文件一起使用。【参考方案2】:我遇到了类似的问题,对我来说解决方案很奇怪。似乎将窗口的标题设置为空(“”)会导致错误。
所以,而不是
start "" /w "k:\Bundle Support files\record serial.cmd"
试试
start "Placeholder Name" /w "k:\Bundle Support files\record serial.cmd"
我无法测试这是否适用于您的情况(我怀疑这是否重要,因为您早已离开)但希望这会帮助遇到任何类似错误的人。
【讨论】:
我对这行得通感到非常惊讶。多么可怕的错误消息,Windows。 我也遇到了同样的问题。我使用您的解决方案输入标题而不是空的“”,它现在可以工作了!谢谢。【参考方案3】:这就是启动 cmd 时 START 命令的作用。如果您运行 START cmd,您不会期望 CMD 立即退出 - 它会一直保留在那里以供使用。所以你要么调用一个 cmd 文件,它就会完成,或者你启动一个 cmd,它不会完成 - 但你可以使用 EXIT 命令完成它。 SEIPIA 也正确回答了堆栈溢出的问题 - 而不是使用 start "" filename.cmd,在引号之间放一些东西作为标题 - 这将防止堆栈溢出错误。
【讨论】:
以上是关于在 Windows 7 的批处理文件中使用启动命令后,“没有足够的存储空间来处理此命令”的主要内容,如果未能解决你的问题,请参考以下文章
Windows 10与Windows 7中的批处理文件调用命令
如何使用带有路径的“开始”和带有空格的命令在 Windows 中创建批处理文件
使用`start`在Windows批处理文件中使用双引号启动进程的副作用