Windows批处理文件末尾的简单插入符号(^)会占用所有内存
这个简单的批处理文件按照相对较短的顺序使用Windows 7(x64)上的所有可用内存。 这是怎么回事? 并采取什么预防措施来防范它?
any-invalid-command-you-like-here ^
显然必要的前提条件:
^是文件中最后一个东西,脚本不会以换行符终止 .^ ,而这一个将会..^ (只是缓慢地) 在这个Process Explorer屏幕截图中,脚本运行了大约30秒,耗用了2.9GB,并且仍在以稳定的速度攀升:

如果你要试验这个,确保你可以进入关闭窗口[X]控制,或者启动一个任务管理器或进程管理器并准备好,因为Ctrl-C,Ctrl-Break,Alt-F4 没有任何作用 。
看起来多个插入符号会导致内存使用速度加快得更快。 我第一次遇到这种情况时,在1到2分钟内没有足够的内存来完成像Alt-Tab这样的简单事情,甚至3个手指向上按下Ctrl-Alt-Del也无效。 我不得不关机。
思考
  这个原因(根据我的理解)是由于cmd解释器寻找一个字符以逃避,因为^是批转义字符。  在这种情况下,不要正确地标识文件eof的结尾,cmd只是在查找要转义的字符时保持循环和初始化。 
  在Windows 8 Pro(64)上用cc^^^ (多克拉用于加速泄漏)转载。 
试验
  cc^无限循环并且泄漏非常缓慢。 
  cc^^与正常的无效命令错误一起崩溃。 
  cc^^^无限循环并且泄漏速度更快。 
  cc ^无限循环并且泄漏非常缓慢。 
  cc ^^与正常的无效命令错误一起崩溃。 
  cc ^^^无限循环并且泄漏速度更快。 
  cc"^崩溃,正常的无效命令错误。 
  cc"^^崩溃,正常的无效命令错误。 
  cc"^^^与正常的无效命令错误一起崩溃。 
笔记
^字面上使用(报价的外侧)。  当引用添加脚本崩溃时出现标准无效命令错误。 注意事项
^ (0x5E)或至少奇数个克拉结束。 上一篇: Simple caret (^) at end of Windows batch file consumes all memory
