在 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批处理文件中使用双引号启动进程的副作用

在 Windows 7 用户登录之前运行批处理文件以启动 VLC Web 界面

sublime text2在windows中以命令行启动

如何用批处理文件(.bat)停止或启动windows的服务 ?