为什么以及如何在 Windows 操作系统的后续版本中取代 Autoexec.bat?

为什么以及如何在 Windows 操作系统的后续版本中取代 Autoexec.bat?

我在阅读有关 MS-DOS 架构的文章时,遇到了类似的文件自动执行程序配置系统

自动执行程序批处理 ( .bat) 文件,其中包含用于初始化路径、环境变量、CWD、Prompt 等的命令。此文件(连同配置系统) 在操作系统启动过程中自动执行(如果存在)。

自从,操作系统命令提示符大部分都是相同(或相似)的,我认为相同的过程也将在 Windows 操作系统的当前版本中延续。

这似乎是可以理解的,因为当我们开始时,cmd我们每次已经处于特定的 CWD,并且有一组指定的位置path等等。

但事实证明,Windows XP而更高版本的 Windows 操作系统则没有这个功能。

所以我在想现在一切是如何初始化的,为什么自动执行程序被除掉了?

答案1

Windows NT 是一个完全不同的操作系统,它不依赖于 DOS,因此它的所有后代(包括 Windows 2000,不仅仅是 XP 及更高版本)也不使用 DOS 的东西,例如 AUTOEXEC.BAT。也就是说,%SystemRoot%\system32当启动 DOS 应用程序时,有一个 AUTOEXEC.NT 用于设置环境

Windows ME,尽管属于 Windows 9x 系列,也试图摆脱 DOS。因此它只解析 AUTOEXEC.BAT 中的环境变量

答案2

CONFIG.SYSDEVICE=使用和行设置各种选项并加载驱动程序DEVICEHIGH=。它是在 DOS 启动时读取的。

当 DOS 完成初始化后,它将启动一个 shell。这由SHELL=CONFIG.SYS 中的行指定,通常是COMMAND.COM但不是必须的。

COMMAND.COMAUTOEXEC.BAT将在使用开关启动时运行/P--这通常在行中指定CONFIG.SYS COMSPEC=例子) 表示“使永久生效”(它不是“子 shell”)。 switch/D可以抑制此操作。

DOS 与其他 Microsoft 操作系统之间的差异可以追溯到 XP 之前。它可以追溯到 1993 年,当时 Windows 首次开发 Windows 的 NT 分支;两年后 Windows 95 问世。9x 分支和 NT 分支都与 MS-DOS 的底层不同 - 就 NT 而言,差异非常大。

粗略地概括一下 NT Windows 与 MS-DOS 的区别:

  • 使用 CPU 的保护模式在内核和用户空间之间创建屏障。
  • 除了 DOS 原始而有限的 TSR 系统之外,还期望多个程序能够运行并访问相同的磁盘、显示器等。
  • 具有支持基于事件的编程的消息系统,这是支持 GUI 鼠标和窗口界面的输入方法所必需的。
  • 具有需要用来创建窗口、小部件和修改显示所需的 API(GDI 等)。
  • 期望程序进行系统调用来与所有设备通信,并且不允许直接访问硬件。
  • 一开始,NT 并没有提供很多可从 COMMAND.COM 或同等程序获得的命令行工具来完成操作系统中的任务。

因此,启动过程是不同的,而且对于 Windows 的 NT 分支(包括 XP)来说,差异极大。

维基百科上有关于Windows NT 初始化的详细信息

9x Windows 更像是 MS-DOS 的多任务扩展,具有奇怪的机制来将事物扩展到 32 位。9x 的启动过程与 MS-DOS 更相似,这是一个很好的描述在微软将 XP 作为基于 NT 的 Windows 消费者和商业版本之前,Windows ME 是 Windows 9x 分支的最后一款产品。

答案3

启动由服务和启动文件夹处理,以启动应用程序(参见任务管理器启动选项卡)。如今没有与 DOS 启动方式相对应的启动方式。自 NT4 以来,服务甚至无需登录即可启动。非常不同。

相关内容