登录

最早可追溯到Win 3.1,微软资深工程师详解批处理文件WINSTART.BAT


速读:BAT的主要用途,是让用户加载终止并驻留程序(TSR),供Windows程序调用,同时避免把这些程序提供给独立的MS-DOS虚拟机。 微软资深工程师雷蒙德·陈近日介绍了其中一个大多数现代用户可能从未听说过的功能,就是批处理文件WINSTART.。
2026年08月12日 16:23

IT之家 8 月 12 日消息,据外媒 neowin 今天(12 日)报道,微软在长期改进 Windows 的过程中,也为操作系统积累了不少鲜为人知的功能。微软资深工程师雷蒙德 · 陈近日介绍了其中一个 大多数现代用户可能从未听说 过的功能,就是批处理文件 WINSTART.BAT 。

雷蒙德 · 陈在微软 Old New Thing 博客的一篇新文章中介绍了 WINSTART.BAT 的用途、设计初衷,以及该文件在 Windows 启动流程中的具体位置。

据了解,用户把 WINSTART.BAT 放入 Windows 目录,Windows 95 启动时便会执行该文件。不过, WINSTART.BAT 并不是随 Windows 95 才出现的功能。该文件 比 Windows 95 早了数年 ,Windows 3.1 Resource Kit 中已经对其进行了详细说明。

批处理文件可以用于自动完成重复性的日常任务。此类文件本质上是包含一系列命令的简单文本文件,Windows Command Shell 会按照顺序逐条执行。

WINSTART.BAT 的主要用途,是让用户 加载终止并驻留程序(TSR) ,供 Windows 程序调用,同时避免把这些程序提供给独立的 MS-DOS 虚拟机。

IT之家获悉,TSR 是一类表面上已经退出、实际上仍驻留在内存里的 MS-DOS 程序,可以通过硬件或软件触发方式重新激活。此类程序过去常被用于 通过快捷键调用的实用工具或设备驱动程序 ,以弥补 MS-DOS 一次只能运行一个程序的限制。

雷蒙德 · 陈以驱动程序为例称,用户可以 加载 Windows 所需的网络驱动程序 ,同时不让 MS-DOS 程序也能使用该驱动,从而避免额外占用内存。

雷蒙德 · 陈还通过 AUTOEXEC.BAT 进一步说明了 WINSTART.BAT 在启动流程中的位置。 AUTOEXEC.BAT 会在 MS-DOS 启动时执行,并可以加载 TSR。Windows 之后为 MS-DOS 应用创建虚拟机时,这些虚拟机也会继承已经加载的 TSR。

Windows 接管系统并初始化 VMM 后,会创建 供 Windows 程序运行的 System VM 。在 Windows 用户模式内核启动之前,只要 WINSTART.BAT 存在,VMM 就会执行该文件。

执行时机上的差异正是 WINSTART.BAT 的特定优势。Windows 3.x 和 Windows 95 会通过虚拟机运行 MS-DOS 环境,而利用 AUTOEXEC.BAT 加载的 TSR 会被这些 MS-DOS 环境继承。

WINSTART.BAT 则不同。通过 WINSTART.BAT 加载的 TSR 可以供 System VM 中的 Windows 程序使用,却不会进入独立的 MS-DOS 虚拟机。

AUTOEXEC.BAT 加载的 TSR 同时可供 Windows 及其 MS-DOS 环境使用,而 WINSTART.BAT 加载的 TSR 只供 Windows 本身使用。

主题:MS-DOS|用户|该文件|雷蒙德·陈|批处理文件|启动流程中