This is a tricky one, and requires a lot of messing with the Registry and/or with other configuration files. So
BACKUP FIRST! But if can be done (in certain cases anyway). The principle is to move a Win95/98 application to another
drive and/or folder, and modify its Registry/config file(s) settings to match the new location, without getting any error
messages, like:
"Your Program is not properly configured/installed. Windows cannot find
XYZ.CFG file. Please reinstall."
and without having to reinstall it (of course). I am going to use
"Outlaws" by Lucas Arts (a "shoot-em-up" cd-rom game) as example of doing this, step by step:
Let's say you
originally installed Outlaws in C:\Outlaws, but now you'd like to move it to D:\Outlaws (all its files and subfolders, of
course). To move a folder and its contents to another drive, hold down Shift (in Explorer) while dragging and then releasing
it onto the target drive icon. Then open Control Panel, and double-click "Add/Remove Programs". Scroll down to "Lucas Arts'
Outlaws". The principle is to look for all Registry entries that match at least one word contained in your application's
title, the one listed in "Add/Remove Programs" (also called "friendly name").
Now run the Registry Editor
(REGEDIT.EXE), located in your Windows folder. Click on Edit, and then Find (Ctrl-F). Type "outlaws" (no quotes) in the Find
box. Click Find Next (press Enter), and modify all C:\Outlaws instances found to read D:\Outlaws. In this case, the Registry
keys to look under are:HKEY_LOCAL_MACHINE\SOFTWARE\LucasArts Entertainment Company\Outlaws
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectPlay\Applications\Outlaws
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLAWS.EXE
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\LucasArts' OutlawsThe last two
Registry keys listed above ("App Paths" and "Uninstall") contain settings for most installed Win95/98
programs. Replace the first C:\Outlaws instance with D:\Outlaws, and then press F3 to find the next instance (and so on).
Repeat this operation until you get this message: "Finished searching through the Registry" Close Regedit. In the
above example there are no *.CFG, *.DAT, *.INI, *.LOG etc files you need to modify, either in your Windows folder or in the
Outlaws folder. But other apps make use of such files, and you need to replace all your particular app's old folder instances
with the new ones (to point to your program's new location), in all those files too (where applicable).
Restart Windows
when you're done.
There are several 3rd party uninstallers out there that can automate some of the steps above (especially if you use such a tool to monitor all your programs' installations), since most of
them keep a record (log) of all changes made to your Win95/98 system during install.Alternate method: Use a dedicated program like Change Of
Address 2 (COA2) [595 KB].
This trick was published in the October 1995 issue of PC
Magazine. You can run your AUTOEXEC.BAT after the boot process is over, and execute different command lines depending
on whether you're running it during the bootup routine or afterwards. The principle is to implement a MS-DOS batch
variable to differentiate the lines you want to run only after bootup from those you like executed only at startup. All
you have to do is prefix your AUTOEXEC.BAT lines that should run only at bootup with this line:IF
"%0"==""MS-DOS plugs a batch file name into the "%0" parameter when you execute it from the command line, but when
AUTOEXEC.BAT is processed at bootup, this parameter is still blank. Easier, if you have a group of command lines you'd
like executed only at startup, just insert this on a separate line before them:IF NOT "%0"=="" GOTO
AFTERBOOTThen insert the :AFTERBOOT label on a line of its own, after the last line in your selected
group. And if you have more than one group of such commands, use a different label for each one, e.g. :AFTERBOOT1,
:AFTERBOOT2 etc. If you have multiple such groups scattered throughout your AUTOEXEC.BAT, make sure to add a
GOTO END line after the last line of each such group, and an :END label as the last line of your
AUTOEXEC.BAT.
I found a fool-proof way to go to the native/real/true/pure MS-DOS mode when you click the Start button, then choose Shut
Down, and select the default: "Shut down the computer" in Windows 95/98. No more nagging "Waiting to shut
down" or "It's safe to turn off..." screens either. ... And you can also boot directly to the native MS-DOS
mode if you like. :) To achieve this, you need to perform these 5 easy steps:
Move the LOGOW.SYS +
LOGOS.SYS files [just Windows bitmaps with a different extension :)] from your Windows folder (default is C:\Windows) to
a backup disk, eventually together with these other files listed below.
Move to an empty, formatted 1.44 MB floppy
diskette all the following files (you may not have all of them depending on your Win9x setup), located in the root folder
of your boot drive (C:\ is default):
File Name: Attributes:
---------------------------
BOOTLOG.PRV Hidden
BOOTLOG.OLD Hidden
BOOTLOG.TXT Hidden
DETLOG.OLD Hidden, System
DETLOG.PRV Hidden, System
DETLOG.TXT Hidden, System
MSDOS.--- Hidden
NETLOG.TXT Archive
OEMLOG.TXT Hidden
SCANDISK.LOG Archive
SETUPLOG.TXT Hidden
SUHDLOG.DAT Read-only, Hidden
SYSTEM.1ST Read-only, Hidden, System
W95UNDO.DAT Read-only, System
W95UNDO.INI Read-only, System
NONE of the files above are needed for Windows 95/98 proper operation! They
were created when you first installed Win95/98 and further updated when you have made certain changes to your system
configuration, or were created when your Win95/98 system loaded/shut down improperly. The only useful file (that I know
of) on this list is SYSTEM.1ST, good to restore your original Registry, in case of a sudden disaster (system lockup,
file corruption etc), when you're caught off guard, with no recent backups of your Win9x Registry files. See "RESTORE DAMAGED REGISTRY" in MYTIPS95.TXT [part of W95-11D.EXE], for more
details. Just keep that floppy handy... The easiest way to move all these files is by running File Manager (FM =
C:\Windows\WINFILE.EXE). But you can also do this in Windows Explorer. If you use File Manager: make sure you can
view ALL files in File Manager (including Hidden, Read-only AND System files): left-click View, By File Type..., and
then check the "Show Hidden/System Files" box. In File Manager highlight all the above C:\ root files by holding
down Ctrl and then left-clicking on each one of them. Now drag all highlighted files to the A: drive icon, while holding down
Alt (to move them instead of just copying). Release the left mouse button and then answer Yes to all those
confirmation screens. [nag... nag... :)]
Add/modify the SHELL line in your CONFIG.SYS file (located in C:\ root), to
look similar to this one:SHELL=C:\COMMAND.COM C:\ /E:1536 /L:128 /U:128 /PMake sure you have
a copy of COMMAND.COM in the root folder of your C:\ boot drive, to make the line above work properly. You can usually find
COMMAND.COM in the C:\Windows and C:\Windows\Command folders. Now reboot, so the new Command environment can take
"charge".
Edit your MSDOS.SYS file (found in C:\ root) by using SYS95.BAT [part of W95-11D.EXE], and add/modify this [Options] section
line to read:BootGUI=0Save your work and exit the text editor. This setting prevents the
Windows GUI from loading, and you'll find yourself at the plain DOS prompt after a (re)boot.
Now close all
applications, click Start, click Shut Down, and answer Yes/OK to the "Shut down the computer" selection. You'll find
yourself at the plain DOS prompt, to do whatever you want: type those cryptic DOS commands, or play your coolest 3D SuperVGA
DOS game [:-)] that won't run under the Win95/98 GUI... sounds familiar?!... instead of having to power off your PC, or
reboot again [what a pain... :(] into MS-DOS mode. When you're done "playing" at [or with :)] DOS, just type WIN
and press Enter to reload the Windows GUI. No need for another reboot to get back to, or out of Windows from now
on.
That's it. Enjoy the DOS ride!FYI:
See "WIN98 ATX SHUT DOWN FIX", also in TIPS98.TXT [part of W95-11D.EXE], if
you own an ATX motherboard and Windows 98 or 98 SE, to learn about an alternative "exit to native MS-DOS" method.
Example
of CONFIG.SYS line using XDVD2.SYS:DEVICEHIGH=C:\CDROM\XDVD2.SYS /D:MYCDROMYour CD/DVD drive name (MYCDROM above) MUST match EXACTLY the one on your
MSCDEX/SHSUCDX/NWCDEX driver line in CONFIG.SYS/AUTOEXEC.BAT! See these topics for more details:
XDVD2.SYS takes 2.3 KB of upper DOS RAM if loaded with DEVICEHIGH in CONFIG.SYS. An upper memory manager like UMBPCI.SYS, EMM386.EXE, QEMM386.SYS, RM386.EXE or 386MAX.SYS is required in
CONFIG.SYS for this to work. See MEMORY.TXT [part of both W95-11D.EXE + W31-11D.ZIP] for memory management
guidelines. Other 3 CD/DVD drivers listed above accept similar CONFIG.SYS lines. Make sure to read respective
documentation for the specific driver you intend to use to take advantage of specific command line switches, especially if
using UATA/UDMA modes to access your CD/DVD drive(s) in native MS-DOS.To my knowledge all these drivers work GREAT with
ANY 100% compliant internal (E)IDE/ATAPI CD/DVD drive of ANY speed using the default 16-bit IDE or 32-bit (E)IDE motherboard
connector. Most all Pentium, Pentium Pro and Pentium II/III/IV motherboards provide the dual (E)IDE PCI interface for
internal (E)IDE/ATAPI drives, which support CD/DVD drives.FYI: If you have an IDE/ATAPI
CD-ROM drive connected to a Sound Blaster (SB) card interface (the IDE interface on some Creative Labs SB cards, like the SB
AWE32 PnP, or SB AWE64 PnP), you may NOT be able to use the DOS drivers mentioned above, because the SB IDE interface
(controller) uses a different interrupt and hex base address. Example: the standard secondary (E)IDE controller on the
motherboard uses interrupt 15, and base address 170h (hex notation). Sound Blaster IDE interface uses by default interrupt
(IRQ) 5 (same as the sound card chip), and base address (BA) 220h. Also, if you have an SB card featuring the older
Matsushita/Panasonic proprietary 8-bit CD-ROM interface (like the Sound Blaster 16 CD/16 ASP, NOT PnP), you canNOT use the
CD-ROM drivers listed here. In this case you will have to use the driver(s) provided by Creative Labs (bundled with your
sound card or CD-ROM drive), usually called SBCD.SYS (which takes 13 KB of memory). The Panasonic/Matsushita CD-ROM
connector uses (to my knowledge) interrupt 5 and base address 220h, and cannot be changed. The standard (E)IDE motherboard
controller interface in most Pentium (and newer) systems uses the following Interrupt ReQuest lines (IRQ) and hex Base
Addresses (BA):
All the above standard hardware settings are supported by XDVD2.SYS, VIDE-CDD.SYS + TEAC_CDI.SYS DOS
drivers.
To my knowledge all following internal (E)IDE/ATAPI CD/DVD drives work with all 3 DOS drivers above, ONLY IF
connected to the standard (E)IDE motherboard controller:
most Acer and Aopen
some Creative Labs
(NOT OMNI/Matsushita proprietary)
some Matsushita/Panasonic (if NOT connected to the sound card IDE or proprietary
controller)
all NEC
all Teac
all Turtle Beach
most Toshiba
most Pioneer
all Imation
some Memorex
some
Mitsumi [Thank you Roberto!]
some Waitec [Thank you Roberto!].
UPDATES:
BUSLink R56 internal CD-ROM drive does NOT work with VIDE-CDD.SYS. [Thank you Karl!]
Older proprietary IDE
Matsushita CD-ROM drives (1x-2x speed) manufactured around 1993 and earlier, and sold under the brand names of Creative Labs,
JVC, Panasonic, Plextor and Reveal do NOT work with the newer CD standards using more than 640 MB (> 63 minutes audio). This
includes 650, 700, 740 and 800 MB CDs/CD-Rs/CD-RWs. An example is Activision's MechWarrior 2 Mercenaries CD-ROM game for
Windows 9x/ME.
Most Pioneer internal (E)IDE/ATAPI CD/DVD drives do NOT work with DOS drivers above. Pioneer drive owners
need to download:
ATAPI108.EXE for 4-24x speed CD/DVD drives [28 KB].
ATAPI307.EXE for 24x-faster speed CD/DVD drives [70
KB].
Certain Panasonic/Matsushita (Creative Labs) CD-ROM drives do NOT support DOS drivers above, especially if
connected to a Creative Labs Sound Blaster (MKE/Panasonic) proprietary (non-standard) IDE controller. An example is the
Creative Panasonic CD drive CR563. [Thank you Michael!]
"These DOS drivers do NOT work with my Compaq Presario CDTV
510 486 class PC with an IDE/ATAPI CD-ROM drive. The only driver working in DOS mode is the one included with the computer:
CPQIDECD.SYS. See Compaq Support for more info." [Thank you
Captain!]
Have you ever wanted to delete some of those annoying icons (you never use anyway) from your Desktop? If your answer
is yes, read on... There are two ways of doing this:
The more complicated [but elegant :)] procedure is
to install the System Policy Editor, and delete/disable the unwanted items.
The easy way is to make a few Registry
changes, which you should BACKUP FIRST! Run Regedit and go to:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\ExplorerIn the following
example I'll use the "Network Neighborhood" icon:With the above key highlighted, right click anywhere in the Registry
field, select New, and click DWORD, to create a new entry. Name it "NoNetHood" (don't type the quotes). When you set its
value to 1 and then reboot, the Network Neighborhood desktop icon will be gone! To reinstate this icon on your desktop,
change its value to 0.And the beauty of this trick is that you can apply it to ALL your Desktop system icons.To make
changes to any other "hardwired" (read "unwanted") icon, go to:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Desktop\NameSpace\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} Within
this key, each system icon has its own CLSID (Class ID) key, a 16 byte value which identifies an individual object, that
points to a corresponding key in the Registry:HKEY_CLASSES_ROOT\CLSID{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}To delete an icon, remove the 16 byte
CLSID value within "NameSpace". To change an icon name, change the value of its "sister" CLSID key:HKEY_CLASSES_ROOT\CLSID{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\DefaultIconTherefore, the "Network
Neighborhood" correspondent keys would be:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Desktop\NameSpace\{208D2C60-3AEA-1069-A2D7-08002B30309D} and
respectively:HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}Here are the
"CLSID" keys for all Windows 95 system icons:Briefcase.{85BBD920-42A0-1069-A2E4-08002B30309D}
Desktop.{00021400-0000-0000-C000-000000000046} Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D} Dial-Up
Networking.{992CFFA0-F557-101A-88EC-00DD010CCC48} Fonts.{BD84B380-8CA2-1069-AB1D-08000948F534}
Inbox.{00020D76-0000-0000-C000-000000000046} My Computer.{20D04FE0-3AEA-1069-A2D8-08002B30309D} Network
Neighborhood.{208D2C60-3AEA-1069-A2D7-08002B30309D} Printers.{2227A280-3AEA-1069-A2DE-08002B30309D} Recycle
Bin.{645FF040-5081-101B-9F08-00AA002F954E} Shortcut.{00021401-0000-0000-C000-000000000046} The
Internet.{FBF23B42-E3F0-101B-8488-00AA003E56F8} The Microsoft Network.{00028B00-0000-0000-C000-000000000046} Url
History Folder.{FF393560-C2A7-11CF-BFF4-444553540000}You can use the method above for any system icon you want to
modify/delete. Go to the CLSID key you want to modify and change its "DefaultIcon" subkey. Recycle Bin makes an
exception, its "Default" value lists the full pathname of the file that contains the corresponding icon. Recycle Bin has
three entries under "DefaultIcon": Default, Empty and Full, each represented by a different icon for the: default, empty and
full Recycle Bin respectively. I know my "nightmare" is to see that pesky "Recycle Bin" icon on my desktop every day. Just
go to its "NameSpace" key:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Desktop\NameSpace\{645FF040-5081-101B-9F08-00AA002F954E}and
delete it. From now on when you start Win95, bye-bye Recycle Bin! You can also rename the Recycle Bin's "NameSpace" key,
by scrolling to the corresponding CLSID key:HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIconand modifying its
"default" value.You can always create new versions of the icons listed above, which will have the Move, Copy and Delete
properties enabled. The Control Panel icon for example, is represented by this CLSID key:HKEY_CLASSES_ROOT\CLSID\{21EC2020-3AEA-1069-A2DD-08002B30309D}To create a new icon called, let's
say "Control Center", delete the key below:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Desktop\NameSpace\{21EC2020-3AEA-1069-A2DD-08002B30309D}and
then create a new folder called:Control Center.{21EC2020-3AEA-1069-A2DD-08002B30309D}A
folder with this extension file retains the properties of the original Control Panel, but it can also be deleted or
moved. To change the "My Computer" icon, go to:HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIconand change its icon file
name in the "default" entry.
TIP: You can use Microsoft TweakUI [110 KB, free,
unsupported] to eliminate the Win9x system icons of your choice from your desktop (and much more). ... But that takes the
fun out of messing with the Registry :-)
I have noticed an increase in Win95/98/ME loading time lately, and what is more annoying, the pop-up menus/dialog
boxes/shortcuts take a long time to show up! I have narrowed down my sluggish system response to the (too) many fonts I
have installed over the past years (over 250!). So I trimmed them down, backed up and moved away about 100, but the pop-up
menus were still showing a slow response. Now this was war! But I managed to detect the "culprit": the default system font
for most of the Desktop appearances is "Arial". Arial is a True Type Font (.TTF file extension), which means it takes some
time to render on the menus/pop-up boxes, especially with the Microsoft Font Smoother utility installed [174 KB,
free].NOTE: Do NOT install MS Font Smoother if you have MS Plus! for 95, OSR2, Win98 or
WinME!So I changed the system desktop font to a screen (raster/plotter) font, which doesn't take for ever to render,
having no edges to "smooth". I chose the plain "System" font. To do this, right-click on an empty spot on your Desktop,
select Properties, click on the Appearance tab, and click once on the "Normal" desktop setting. In the "Font:" list,
scroll down to the "System" font. Select it and then click Apply to make the change "stick" instantly, or click OK to make it
permanent. Repeat the above steps with the "Selected", "Active Window", "Inactive Window", and "Message box" Appearance
settings. Choose the "System" font for ALL of them. Not only it is available strictly in Bold, so it stands out much better
on the screen than "Arial" (which by default is in Regular), but it also takes less time to draw a window/menu/pop-up
tab. Depending on your installed fonts, you may have other neat screen fonts (all the ones with the .FON extension) to
"play" with, like: "Courier", "Modern", "Roman", "Fixedsys", "MS Serif", "MS Sans Serif,Sans-Serif" etc. To view each individual
font, open the "Fonts" icon in Control Panel, and double-click on the one(s) you wish (all screen/plotter fonts have a red
"A" icon assigned).
When you run this command at a DOS prompt box/session from inside Win9x/ME:XCOPY
/?you get this help screen:
"Copies files and directory trees.
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/W]
[/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U]
[/K] [/N]
source Specifies the file(s) to copy.
destination Specifies the location and/or name of new files.
/A Copies files with the archive attribute set,
doesn't change the attribute.
/M Copies files with the archive attribute set,
turns off the archive attribute.
/D:date Copies files changed on or after the specified date.
If no date is given, copies only those files whose
source time is newer than the destination time.
/P Prompts you before creating each destination file.
/S Copies directories and subdirectories except empty ones.
/E Copies directories and subdirectories, including empty ones.
Same as /S /E. May be used to modify /T.
/W Prompts you to press a key before copying.
/C Continues copying even if errors occur.
/I If destination does not exist and copying more than one file,
assumes that destination must be a directory.
/Q Does not display file names while copying.
/F Displays full source and destination file names while copying.
/L Displays files that would be copied.
/H Copies hidden and system files also.
/R Overwrites read-only files.
/T Creates directory structure, but does not copy files. Does not
include empty directories or subdirectories. /T /E includes
empty directories and subdirectories.
/U Updates the files that already exist in destination.
/K Copies attributes. Normal Xcopy will reset read-only attributes.
/Y Overwrites existing files without prompting.
/-Y Prompts you before overwriting existing files.
/N Copy using the generated short names."
Xcopy.exe and Xcopy32.exe are located by
default in your C:\Windows\Command folder (Win9x/ME). XCOPY.EXE resides by default in your C:\DOS directory (MS-DOS
6.xx). Xcopy (and its counterpart Xcopy32) are the most powerful "COPY/MAKE DIR" commands Microsoft came up with,
beginning with the MS-DOS 6.00 release. Use XCOPY32 with a well thought combo of parameters to copy files with ANY
attributes (and preserve them) to ANY destination. Very useful indeed since XCOPY32 preserves the long file names (LFNs) in
the DOS environment, but ONLY when used in a DOS box/session/window, inside Win9x/ME!If using MS-DOS 6.xx, XCOPY is
limited to these command line parameters, and does NOT provide LFNs support:
"Copies files (except hidden and system files) and directory trees.
XCOPY source [destination] [/A | /M] [/D:date] [/P] [/S] [/E] [/V] [/W]
source Specifies the file(s) to copy.
destination Specifies the location and/or name of new files.
/A Copies files with the archive attribute set,
doesn't change the attribute.
/M Copies files with the archive attribute set,
turns off the archive attribute.
/D:date Copies files changed on or after the specified date.
/P Prompts you before creating each destination file.
/S Copies directories and subdirectories except empty ones.
/E Copies any subdirectories, even if empty.
/V Verifies each new file.
/W Prompts you to press a key before copying.
/Y Suppresses prompting to confirm you want to overwrite an
existing destination file.
/-Y Causes prompting to confirm you want to overwrite an
existing destination file.
The switch /Y may be preset in the COPYCMD environment variable.
This may be overridden with /-Y on the command line"
This is the COPYCMD command variable line, you can add to
your AUTOEXEC.BAT file, to disable the confirmation prompts when using: XCOPY, XCOPY32, COPY and MOVE (use it with
CAUTION!):SET COPYCMD=/YExample of Xcopy/Xcopy32 command used to preserve the LFNs at a
Win9x/ME DOS prompt, that copies ALL subfolders and files from your Windows folder to another drive/directory:XCOPY C:\WINDOWS D:\WINBAK /C /E /H /KWARNINGS:
If you use the "XCOPY /Y" parameter (or the "COPYCMD" command variable), XCOPY will OVERWRITE ALL existing
files WITHOUT prompting you first!
By using XCOPY/XCOPY32 in native/real/true/pure MS-DOS mode outside Win9x GUI, you will not
be able to use ALL the parameters listed above, and most importantly the Long File Names (LFNs) will NOT be preserved, they
WILL BE IRREVERSIBLY LOST!
ADD-ON: There is a better XCOPY(32) alternative: XXCOPY for Win9x/NT/2000/ME/DOS (freeware), which adds more command
line switches [besides supporting ALL Microsoft XCOPY(32) parameters], and complete LFNs support in a DOS box
(Win9x/NT/2000/ME only).
%windir% is a variable used by ALL MS-DOS 6.xx, 7.xx and 8.00 commands, both internal and
external. Internal MS-DOS commands (built into the OS, NOT real files): COPY, DEL, MD, RD, CD etc. External MS-DOS
commands [actual files on your disk, located by default in C:\WINDOWS\COMMAND (Win9x/ME) or in C:\DOS (MS-DOS 6.xx)]:
XCOPY.EXE, MOVE.EXE, ATTRIB.EXE, DELTREE.EXE etc. More info @ MSKB.BEWARE: The %windir% variable is
available ONLY with the Windows GUI started, therefore can be used ONLY in a Windows DOS session/box prompt and in batch
files executed ONLY from within Windows, it canNOT be used in native/real/true/pure MS-DOS mode outside Windows! So if you are
running such commands from the native MS-DOS prompt, use the real name of your Windows folder (directory), or if using
Win9x/ME, you can add the %winbootdir% variable followed by a backslash (\) in front of your file names, to
point to a valid path. Example:XCOPY <parameters> %winbootdir%\*.INI C:\WINBAKThe
%windir% variable shows off its usefulness when you have Windows installed in a folder other than the default C:\WINDOWS,
and/or would like to use the same batch file(s) on multiple Windows PCs (eventually connected to a network), without having
to customize it/them individually for each machine. The Windows 9x/ME directory (set <windir>) is an internal
MS-DOS variable, specified in MSDOS.SYS (a system file located in C:\ root), which is processed
by the Win9x/ME boot routine. IO.SYS (which is processed first at bootup) looks into MSDOS.SYS [Paths] section to
determine the location of your Windows 9x/ME directory, and loads it in the MS-DOS environment memory. This MSDOS.SYS
example uses default values:[Paths] WinDir=C:\WindowsIf you run the SET command at a DOS
prompt (using "| MORE" to display one screen at a time):SET | MOREyou'll see all MS-DOS
variables, including "windir". Notice that the internal ones ("windir" and "winbootdir") appear in small characters, and
the external SET variable (specified in CONFIG.SYS and/or AUTOEXEC.BAT by the SET <variable> command lines) appear in
capitals.Example of a common SET variables list at a Win9x/ME DOS box prompt:windir=C:\WINDOWS winbootdir=C:\WINDOWS COMSPEC=C:\WINDOWS\COMMAND.COM
TEMP=C:\WINDOWS\TEMP TMP=C:\WINDOWS\TEMP PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\;etc... WINPMT=$P$G PROMPT=Type
EXIT & hit Enter 2 return 2 Windows!$_$P$G SOUND=C:\SB16 MIDI=SYNTH:1 MAP:E MODE:0 BLASTER=A220 I5 D1 H5 P330
T6 MOUSE=C:\MOUSE COPYCMD=/Y DIRCMD=/A/O:GEN/P/V etc...Now notice the difference when you run the same
"SET | MORE" command from native MS-DOS 7.xx/8.00:winbootdir=C:\WINDOWS
COMSPEC=C:\WINDOWS\COMMAND.COM TEMP=C:\WINDOWS\TEMP TMP=C:\WINDOWS\TEMP
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\;etc... PROMPT=$P$G WINPMT=Type EXIT & hit Enter 2 return 2
Windows!$_$P$G SOUND=C:\SB16 MIDI=SYNTH:1 MAP:E MODE:0 BLASTER=A220 I5 D1 H5 P330
T6 MOUSE=C:\MOUSE COPYCMD=/Y DIRCMD=/A/O:GEN/P etc...Example of a common SET variables list at a Win31
DOS box prompt:windir=C:\WINDOWS COMSPEC=C:\DOS\COMMAND.COM TEMP=C:\DOS
TMP=C:\DOS PATH=C:\;C:\DOS;C:\WINDOWS;C:\STUFF;... etc WINPMT=$P$G PROMPT=Type
EXIT & hit Enter 2 return 2 Windows!$_$P$G SOUND=C:\SB16 MIDI=SYNTH:1 MAP:E MODE:0 BLASTER=A220 I5 D1 H5 P330
T6 MOUSE=C:\MOUSE COPYCMD=/Y DIRCMD=/A/O:GEN/P etc...Now notice the difference when you run the same
"SET | MORE" command from native MS-DOS 6.xx:COMSPEC=C:\DOS\COMMAND.COM TEMP=C:\DOS
TMP=C:\DOS PATH=C:\;C:\DOS;C:\WINDOWS;C:\STUFF;... etc PROMPT=$P$G WINPMT=Type EXIT & hit Enter 2 return 2
Windows!$_$P$G SOUND=C:\SB16 MIDI=SYNTH:1 MAP:E MODE:0 BLASTER=A220 I5 D1 H5 P330 T6 MOUSE=C:\MOUSE
COPYCMD=/Y DIRCMD=/A/O:GEN/P etc...
This works with all Windows 95/98/NT4/2000/ME/XP/2003/Vista/2008/7/8/8.1/2012 releases. To reduce your hard drive thrashing (annoying, non-stop spinning) and decrease potential delays
you might experience when you right-click to bring up a context menu or left-click to pop-up a dialog box (especially in Windows Explorer) and to avoid a permanent refresh of your Desktop icons, apply these
steps:SOLUTION 1:Open Regedit and go to:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ExplorerLook in the right hand
pane for the "Max Cached Icons" entry. Create it if not present: right-click in Regedit's right hand pane → select New
→ click String Value → name it "Max Cached Icons" (the spaces are required, but don't type the
quotes). The default value is 500, which means the maximum number of icons that are cached by the OS.
Windows 95/98/ME users:The information about all Win9x/ME
cached icons is held inside the ShellIconCache file, located in your main Windows folder [usually C:\WINDOWS]. 500 icons. But you can increase this number to allow Windows to cache more icons (up to 4096), and to force it to stop accessing your disk(s) frequently, only to
search for those "uncached" icons. According to this MSKB article and this PC
Tools page the maximum size allowed for "Max Cached Icons" is 4096. Minimum value is 100. You need to restart your machine after this change, sometimes 2 or more times, until the new setting
"catches on", and Win9x/ME GUI recreates a new ShellIconCache file. :( To force Win9x/ME to rebuild its icon cache file, delete the current one, then shut down Windows by hitting Alt + F4
simultaneously, and finally reboot/reload/restart the GUI. Try also to delete a possibly corrupt ShellIconCache file after modifying the Registry value above, especially if you have deleted/moved/renamed some of your
old shortcuts, changed their icons or added new ones, because Windows still keeps the info about deleted icons. :( Don't worry, this file should be recreated the next time you (re)load Windows, but sometimes it
may take more than 1 (re)start.
Windows 2000/XP/2003/Vista/2008/7/8/8.1/2012 users:After configuring your registry to have the maximum desired number of "Max Cached Icons" (same as
Win9x/ME), you should delete the obsolete IconCache.db file to force Windows NTx to rebuild its icon cache file. After that you must restart/reboot Windows for this setting to take effect. IconCache.db
is located in:
Windows Vista/2008/7/8/8.1/2012: C:\Users\User_Name\AppData\Local
Windows NT4/2000/XP/2003: C:\Documents and
Settings\User_Name\Local Settings\Application Data
SOLUTION 2:All Win9x/ME + Windows/WfWG 3.1x users: It is also
recommended to edit your SYSTEM.INI file's [vcache] section to read (SYSTEM.INI is located in your Windows
directory):[vcache] MinFileCache=2048 MaxFileCache=4096 ChunkSize=512 AllocPageFixed=OFF
MEANING:
"MinFileCache" specifies the minimum amount of system memory allocated
for caching files in KiloBytes (KB). Allowed values: minimum 128 KB - maximum 51200 KB [50 MB]. Default value
(if not present): varies depending on installed system RAM.
"MaxFileCache" specifies the maximum amount of system
memory allocated for caching files in KiloBytes (KB). Allowed values: minimum 256 KB - maximum 56320 KB [55
MB]. Default value (if not present): varies depending on installed system RAM.
"ChunkSize" specifies the size of
each block of cache memory buffer in Bytes (B). Allowed values: minimum 8 B - maximum 8192 B [8 KB]. Default
value (if not present): 512 B.
"AllocPageFixed" specifies whether to allow (if set ot OFF) Windows
Vcache 32-bit protected driver to adjust the virtual file cache size to the current needs, or to disallow (if set to
ON) the file cache to be resized (fixed). Allowed values: ON (fixed file cache) or OFF (resizable file
cache). Default value: OFF. You can replace ON with 1, YES or TRUE, and OFF with 0, NO or FALSE, respectively (boolean
*.INI entries). For maximum performance it is recommended to leave it OFF, and let Windows manage its own file cache size.
FYI: "DirectoryCache" is not a valid
SYSTEM.INI setting = does not exist.
File caching is handled by the dedicated VCACHE.386 driver in Windows for WorkGroups (WfWG) 3.1x (located in %windir%\SYSTEM), and by VCACHE.VXD in
Windows 95/98/ME, included as part of the complex VMM32.VXD driver (found also in %windir%\SYSTEM).These are the mandatory entries for file cache to work properly:
WfWG 3.1x:
under the SYSTEM.INI [386enh] section:[386enh] device=vcache.386Older Windows 3.xx releases canNOT cache files, relying on the MS-DOS mode SMARTDRV.EXE 16-bit disk cache tool for
this purpose [much slower :(].
Win9x/ME: under these Registry keys (as displayed in a REG file):[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VCACHE] "StaticVxD"="*VCACHE" "Start"=hex:00[HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\VMM32Files] "vcache.vxd"=hex:00
The
lines above are useful on systems with at least 16 MB of RAM installed. On systems with 8 MB or less, try these conservative SYSTEM.INI [vcache] settings:[vcache] MinFileCache=1024 MaxFileCache=2048 ChunkSize=512On machines with 32 MB or more, you may want to adjust the "MinFileCache" to 1/8 of your installed RAM, and "MaxFileCache" to 1/4.
Some trial and error might be necessary, depending on your particular system configuration. Create the SYSTEM.INI [vcache] section if not present. Save your work, and then restart Windows for these changes to take
effect. And don't forget to BACKUP your SYSTEM.INI FIRST! Here are some recommended "MinFileCache" and "MaxFileCache" values depending on your installed memory (note that the minimum and maximum cache values are
NOT the same, which helps if you routinely perform tasks dealing with large files):
On systems with 128 MB RAM or more, you may want to delete these settings from your SYSTEM.INI altogether (if present), and let Windows handle
its own file cache sizes for optimal performance. I have experimented with these values on 32, 64 and 128 MB systems. You may find that other values work
better on your computer, depending on what kind of apps/games you're using: business, CAD/graphics rendering, animation/video
editing, development, publishing, 3D gaming, Internet, CD/DVD burning etc.FYI:
CacheMan for Windows 9x/NT4/2000/ME/XP/2003 [no nag shareware] does all this automatically, including different options you can
customize, depending on your computer's memory and software used.
This posting answers my good friend's question below, and appears here to benefit ALL WinDOwS users.NOTE: This topic applies also to MS-DOS 6.xx and Windows/WfWG 3.1x systems, with these exceptions: the
/L:xxxx and /U:xxx COMMAND.COM parameters and the "winbootdir" environment string, which apply ONLY to Win95/98/ME [a.k.a.
MS-DOS 7.xx/8.00] OSes!Q [The Captain]:"What are your recommendations for a Win95 OSR
2.5 system with 32 MB RAM for a CONFIG.SYS "shell=" line parameters? What about a 16 MB system? I am currently using
"SHELL=C:\WINDOWS\COMMAND.COM /P /E:1024". I have no real mode drivers loading, it's all 32-bit."A [MDGx]:"The SHELL COMMAND.COM environment parameter length, set by the /E:xxxx switch (used
in CONFIG.SYS), doesn't depend on your installed memory (RAM), but on how MANY and how LONG are your SET statements in your
CONFIG.SYS and/or AUTOEXEC.BAT files, including the PATH and the PROMPT lines. A safe bet is to set your CONFIG.SYS SHELL
line to read:SHELL=C:\COMMAND.COM C:\ /E:1024 /L:128 /U:128 /PChange the path above if your
COMMAND.COM copy is located somewhere else. You may want to increase the environment size, let's say to /E:1536 if your
PATH line is pretty long, and/or if you have a bunch of SET lines in your startup files, like I do. For details on the /L
and /U switches (and for all Win95/98 COMMAND.COM available parameters), run:COMMAND /?at any
DOS prompt. If you don't have a SHELL line in your CONFIG.SYS, Win95/98 automatically starts the GUI at the end of
processing the startup files (IO.SYS, MSDOS.SYS, CONFIG.SYS and AUTOEXEC.BAT), even if you have the "BootGUI=0" line present
in your MSDOS.SYS file, the [Options] section. At least that's what happens on my machine, and I noticed this to be valid
with both Win95 OSR1 and Win95B OSR2 releases. There is a good DOS diagnostics tool called SysChk (no nag shareware), which reports the total, used and free environment memory
amounts in bytes (among many other details about your system), when you select option #7 from SysChk's main screen menu. If
your free environment size is below 100-200 bytes, you might need to increase it, to have at least 400-500 bytes free,
because Windows 3.1x/95/98 and their DOS sessions also add to the length of the environment size (like the "windir" line,
present only with Windows/WfWG 3.1x/95/98 started). Also, Win9x adds the "winbootdir" string to the environment upon bootup,
reading the MSDOS.SYS file, the [Paths] section, which contains the "WinBootDir=C:\WINDOWS" line. To see all the SET
lines/strings displayed on your screen, just run:SET | MOREfrom any DOS prompt. Adding "|
MORE" to the SET command, allows viewing all SET lines one screen at a time, and you can press a key to move to the next
screen, that is if all your SET lines don't fit into the default DOS screen of 25 lines. Run SysChk from a Windows DOS
prompt box, and press 7, which displays all environment variables/strings and sizes (a lot more useful details compared to
using the plain "SET | MORE" command). Also, when you start a DOS session in Windows 95/98, the Command environment size
defaults to /E:2048 /L:1024 /U:255 (optimal sizes set by the OS in order to accomodate all your SET/environment strings/lines).
This loads a huge COMMAND module into memory, usually too large for your needs. But you can restrict/customize the environment size
in a Windows DOS session by starting it from a custom PIF file (MS-DOS application shortcut). All you have to do is type something
like:COMMAND.COM /E:1024 /L:128 /U:128in your PIF file's "Cmd line" dialog box, by modifying the
"MS-DOS Prompt" item already present in your Start Menu (Win95/98) or in the Main Program Group (Win/WfWG 3.1x), or by creating a new
one. In Windows/WfWG 3.1x you need to start PIFEDIT.EXE located in your Windows directory to modify/create a PIF executable (Program
Information File)."UPDATE: "To determine exactly the proper size for your environment, open a DOS box,
type this line and hit Enter:SET > HOWMUCH.TXTThis plain text file is exactly the same size as
your environment. You can open HOWMUCH.TXT (the name is of no importance) using Notepad in Windows or EDIT in DOS to see what
strings your environment currently contains. Note that the environment size is different in a Windows DOS box from the native MS-DOS
prompt, because Windows adds the "windir=C:\WINDOWS" (default) variable to the SET list." [Thank you Early Bird!]
If you have more than one open window on your Desktop (and when was the last time you hadn't), there is a way to
close them all with only one swift move, as long as they were all generated by the same application/program. Just hold down
the Shift key and left-click the Close window button (the x button) in the upper right corner of your last open
window. Done.