在 Windows 7 的批处理文件中使用启动命令后"not enough storage is available to process this command"



我正在创建一个批处理文件,该文件需要在单独的cmd窗口中打开第二个批处理脚本。如果我使用"call"命令而不是"start"命令,我可以成功地使用我的所有代码,但这不会在它自己的窗口中启动脚本。我在过去多次遇到这个错误,它总是与启动命令有关。我改变了处理过程的方式,一切都很好。为什么start命令会导致这个错误,我该如何修复它?下面是我的代码示例。

start "" /w "k:Bundle Support filesrecord serial.cmd"

第二个批处理文件打开并完成除最后一个之外的所有任务

goto :exit
:exit

我已经多次更改了文件中的最后一个命令,它总是能完成整个批处理,但最后一个完成该批处理的命令失败了,并出现"没有足够的存储空间可用于处理此命令"错误。这种情况发生在多台机器(不同的硬件)和多个操作系统上。我尝试过IRPStackSize修复,但没有成功。关于我为什么会出现这个错误,有什么建议吗?

谢谢,Kevin

我遇到过类似的问题,解决方案对我来说相当奇怪。将窗口的标题设置为无(")似乎会导致错误。

所以,不是

start "" /w "k:Bundle Support filesrecord serial.cmd"

尝试

start "Placeholder Name" /w "k:Bundle Support filesrecord serial.cmd"

我无法测试这是否适用于你的情况(我怀疑这很重要,因为你已经离开很久了),但希望这能帮助经历类似错误的人。

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

启动cmd时,START命令就是这样做的。如果你运行START cmd,你不会期望cmd立即退出——它会一直保持在那里,随时可以使用。因此,您要么调用cmd文件,它就会完成,要么启动cmd,它不会完成——但您可以使用EXIT命令使其完成。SEIPIA也正确地回答了堆栈溢出的问题——而不是使用start"filename.cmd,而是在引号之间放一些东西作为标题——这将防止堆栈溢出错误。

相关内容

最新更新