How Windows 3.11 Executed DOS Batch Files
In Microsoft Windows 3.11, executing a batch (.BAT) file from within the Graphical User Interface (GUI) was made possible by bridging the 16-bit graphical environment with the underlying MS-DOS operating system. Rather than running the script natively inside the Windows kernel, the operating system dynamically spawned a dedicated MS-DOS virtual machine, invoked the MS-DOS command interpreter, and relied on configuration files known as Program Information Files (PIF) to govern how the execution was displayed and managed.
Because Windows 3.11 was an operating environment operating on top of
MS-DOS, it did not possess an independent command-line scripting engine
within its GUI. When a user double-clicked a .BAT file in
File Manager or launched an icon pointing to one in Program Manager,
Windows initiated a call to the MS-DOS shell, typically
COMMAND.COM.
In 386 Enhanced Mode—the standard operating mode for Windows
3.11—Windows used the virtualization capabilities of the Intel 80386
processor to create a Virtual 8086 Machine (often called a "DOS box").
Within this isolated virtual machine, Windows executed
COMMAND.COM with the /C parameter, followed by
the path of the batch file. This flag instructed the command interpreter
to carry out the batch commands sequentially and then terminate the
session upon completion.
The behavior and presentation of the batch file were controlled by
Program Information Files (.PIF). If a .PIF
file with the same base name as the batch file existed in the same
directory or the Windows path, Windows applied those specific runtime
parameters. If no tailored file was found, it applied the global
settings stored in _DEFAULT.PIF.
Configured via the Windows PIF Editor utility, these parameters dictated several critical operational factors:
- Display Mode: Whether the batch file ran inside a graphical window alongside other Windows applications or took over the entire screen in full-screen text mode.
- Memory Allocation: The amount of conventional, Expanded (EMS), and Extended (XMS) memory reserved for the DOS virtual machine.
- Multitasking Options: Whether the script was permitted to continue running in the background while the user switched focus to a Windows application.
- Window Closure: The "Close on Exit" setting, which determined whether the DOS window immediately closed upon reaching the end of the batch script or remained open so the user could review any output text before manually dismissing it.
Once the commands inside the batch file finished executing,
COMMAND.COM exited, and Windows 3.11 destroyed the
associated Virtual 8086 Machine, releasing its allocated memory back to
the system.