8 月 24 日,Windows 95 就满 31 岁了。周年前这几天,微软那边传出一个小而硬的「电子考古」消息:资深工程师雷蒙德·陈在自己的博客 The Old New Thing 上发了篇新文章,把一个几乎被所有人忘掉的文件翻了出来——WINSTART.BAT。如果你看到 AUTOEXEC.BAT 这个名字会心头一紧,这篇内容就是写给你的。
本周的这条小新闻,信息量不低
陈是微软资深工程师,他的 The Old New Thing 博客一直热衷于翻检 Windows 的陈年旧事,这次他介绍的,是其中一个大多数现代用户可能从未听说过的功能——批处理文件 WINSTART.BAT。微博报道确认的事实可以归纳成三条:第一,用户把 WINSTART.BAT 放入 Windows 目录,Windows 95 启动时便会执行该文件。微博第二,这个文件比 Win95 出现得更早,Windows 3.1 Resource Kit 里就有详细说明。第三,它的主要作用,是给 Windows 加载 TSR 驻留程序,但不把这些程序提供给独立的 DOS 虚拟机。最有意思的,就是这第三条。
你当年折腾的那两个 BAT,到今天还有人聊
先别急着看隐藏的第三个 BAT,先回忆一下你忘不掉的那两个。2026 年了,知乎问题「有哪些新生代没见过或者无法理解的 Windows 95/98 时代的事情?」下面还在不断有新回答。有人张口就来:安装声卡网卡后,先进入BIOS配一下IRQ中断。设备太多的话,可能还不够用。知乎有人一句话点题:说一个更早的,电脑卡不卡,要靠autoexec.bat和config.sys。知乎另一个关于「从 DOS 到 Windows 有版本传承的软件都有什么」的问题下,最能唤起共鸣的记忆是那个蓝底黄字的 Edit:它伴随了无数人第一次编写CONFIG.SYS、修改AUTOEXEC.BAT,甚至写下人生第一行代码。知乎CONFIG.SYS 和 AUTOEXEC.BAT,这两个文件就是当年 PC 启动链的「主线剧情」:BIOS 自检、IO.SYS 接管、CONFIG.SYS 配置硬件与内存、AUTOEXEC.BAT 加载各种驻留程序,最后才轮到 WIN.COM 拉起 Windows 界面。游戏跑不起来、声卡不响、内存不够用,都是蹲在这两个文件面前改出来的。直到今天,怀旧玩家保留下来的 MS-DOS 启动菜单里还能看到那个经典设计:开机按 F8,可以对 CONFIG.SYS 和 AUTOEXEC.BAT 的每一行逐条确认。

启动链上的第三个 BAT:不在 DOS 剧情里,在 Windows 里面
这正是当年大多数人没听说过 WINSTART.BAT 的原因——它从头到尾不在你的视线里。它的执行时机完全不同:Windows 接管系统并初始化 VMM 后,会创建供 Windows 程序运行的 System VM,在 Windows 用户模式内核启动之前,只要 WINSTART.BAT 存在,VMM 就会执行该文件。微博翻译得直白一点:AUTOEXEC.BAT 是 DOS 的 bat,Windows 还没启动它就执行完了;WINSTART.BAT 是「Windows 里面的 bat」,要等 Windows 接管硬件、建立起自己的运行环境之后才登场。

上面这张启动菜单就是 MS-DOS 7.1 的版本,而 MS-DOS 7.1 正是 Win95 底层的那个 DOS 层。你就算在这里按 F8、选「逐步确认」一路确认到底,也确认不到 WINSTART.BAT——它由 VMM 负责执行,根本不经过 DOS 这条剧情线。
它为什么出生?因为那时候的内存是真贵
要理解它存在的理由,得先弄懂 TSR。WINSTART.BAT 的主要用途,是让用户加载终止并驻留程序(TSR),供 Windows 程序调用,同时避免把这些程序提供给独立的 MS-DOS 虚拟机。微博所谓 TSR,就是一类表面上已经退出、实际上仍驻留在内存里的 MS-DOS 程序,可以通过硬件或软件触发随时重新激活。当年的鼠标驱动、磁盘缓存 SMARTDRV、光驱扩展 MSCDEX,都是靠这套机制干活——DOS 一次只能运行一个程序,TSR 就是那个年代的「后台运行」方案。
关键的地方来了。AUTOEXEC.BAT 加载的 TSR,会被 Windows 之后打开的每一个 DOS 虚拟机继承,也就是说,你每开一个 DOS 窗口,就多塞进去一份。这在今天不值一提,但对内存只有 8MB、16MB 的人来说,每多开一个窗口等于多交一份「内存税」。WINSTART.BAT 的思路正好相反:有些驻留程序只有 Windows 自己需要,何必发给每一个 DOS 窗口?雷蒙德·陈举的例子就是驱动程序:用户可以加载 Windows 所需的网络驱动程序,同时阻止 MS-DOS 程序使用该驱动,从而避免额外占用内存。微博一句话翻译:这是一个内存最金贵的年代里诞生的「省内存补丁」。
为什么几乎没人记得它
原因有三个,都不复杂。第一,门槛高。普通玩家折腾两个看得见的 BAT 就够了,需要精细到「给 System VM 单独加载 TSR」的场景,少之又少。第二,时机尴尬。Win95 最大的卖点是即插即用,硬件配置和内存管理越来越多地交给系统,这种手动高级项的生存空间逐年缩小。第三,也是最根本的:Windows 后来彻底转向 NT 内核,底层的实模式 DOS 整体退役,WINSTART.BAT 失去了存在的土壤,今天的 Win11 里已经没有这类机制。
不过,启动菜单这个形态在 Win9x 家族里一路传了下去。Win98 的启动菜单照样列着启动选项,F8 照样能进确认模式,只是几乎没人记得,这条启动链的深处还藏过第三个 BAT。

31 年后,经历过那个年代的老工程师还在一周周写文章,把这种「大多数人没听说过」的老文件翻出来讲清楚。对喜欢老电脑的人来说,这本身就值得咂摸。
你能带走什么
一个立刻能用的谈资:Win95 的启动链里有三个 BAT,老一辈折腾的只是前两个;第三个 WINSTART.BAT 藏在系统内部、由 VMM 在用户模式内核启动前执行,而且它比 Win95 出现得更早,Windows 3.1 时代就有文档记载。
一个判断:装机怀旧或者玩 DOSBox、86Box,不必惦记这个文件。真正值得折腾的还是 CONFIG.SYS、AUTOEXEC.BAT 和内存配置,WINSTART.BAT 是博物馆展品,不是实用工具。
一个自查:家里如果有 Win95 或 Win98 老机器,可以去 C:WINDOWS 目录里找找,没有 WINSTART.BAT 才是正常情况;如果有,这台机器多半有一段值得挖的故事。
一个值得盯的信号:8 月 24 日发布 31 周年就在眼前,怀旧潮已经开始预热。B站这边,LTT 官方账号本周发布了给历代 Windows 评级的视频。哔哩哔哩小红书那边,已经有人在挖安装光盘里的隐藏内容:还记得 Windows95 安装光盘吗?在 Funstuff 文件夹里藏着这支 Goodtimes.avi。小红书接下来这几天,值得持续关注。