--- Freeware ---
[page last modified 7/25/2014]
This program is an enhanced, drop-in replacement for the DOSKEY.COM that ships with MS-DOS and Windows 9x/Me. Although enhanced, it has a smaller disk and memory resident footprint. It is a great addition to DOS boot diskettes, and to the Win 9x/Me environment if the DOS box is used frequently. Note: will not operate under Windows NT/2000/XP (it's not needed since those systems have completion mechanisms built-in).
The primary added feature is command and file "auto-completion" via the tab key. Depending on the context, either a matching command or filename (or path) will be supplied. This is a huge timesaver when using the command line.
In the following examples user-entered text is in CAPS and the auto-completed text which appears when the user enters a TAB key -- is in italics. The "_" represents the cursor position after auto-completion:
c:\> CD \Windows\_
c:\> DIR Autoexec.bat _
If there is more than a single matching completion, the user can repeatedly press the TAB key to cycle through the matches as they appear on the command line. Entering <shift>TAB will go backward through the list of matches (if, for example, you pressed TAB one too many times).
To install, rename your existing DOSKEY.COM (to save it) and download the replacement. To remove, delete the downloaded DOSKEY.COM and rename your original back to DOSKEY.COM.
[Note to Windows/ME users: the "System File Protection" feature in this OS guards against a direct replacment of DOSKEY.COM -- install and load the enhanced DOSKEY.COM from another directory of your choice, and don't rename the Windows/Me original.]
Hope you like it. I wrote this many years ago to make the DOS command line easier to use, and still find myself relying on it every day.
10/15/02 - Version 1.4: Fixed bad command line parsing (switches could damage macro definitons, -m did not work).
Click here to download doskey14.zip
10/18/02 - Version 1.5: Added basic emacs compatible control sequences.
Click here to download doskey15.zip
1/22/03 - Version 1.6: Fixed tab completion bug writing past end of command line. Removed "\" at end of input line when user exits tab completion with a CR -- this functions better with commands such as CD, RD and COPY.
Click here to download doskey16.zip
9/26/03 - Version 1.7: Removed "\" at end of directory name when user exits tab completion with a space -- this functions better with commands such as MOVE, REN and COPY which object to a trailing "\" on the source.
Click here to download doskey17.zip
10/22/03 - Version 1.8: Caused high ASCII (>=80h) to be recognized as filename/path characters. Fixes a problem where umlaut chars were being viewed as separators instead of parts of a valid filename.
Click here to download doskey18.zip
6/14/09 - Version 1.9: Stop executing Win 95 interrupt on versions of DOS that do not implement it. Though never functionally a problem, this change allows doskey to run at 0% CPU (when idle) in Virtual Machines running DOS 6.x, when paired with power management software such as DOSIDLE.EXE.
Click here to download doskey19.zip
6/29/09 - Version 2.0: Further small change to improve CPU utilization when idle (at DOS prompt) in a Virtual Machine. No other functional difference. (As of 9/11/2011, an additional archive with full source is available.)
Click here to download doskey20.zip
Click here to download with full source doskey20src.zip
7/24/14 - Thank you to Wengier Wu, who has provided a modified Doskey with source enhanced to support long file names. I have not tested this code (I no longer have the ability to run DOS, or any 16-bit code). I did look at the source changes to insure they were benign, and verified the executable was built from the source. If you have questions or comments about the LFN implementation, Mr. Wu has permitted a contact email address to be posted: firstname.lastname@example.org. His comments:
I decided to go ahead myself to modify your DOSKEY 2.0 source code and finally managed to add LFN support into it, and tentatively named it as version 2.1. This DOSKEY 2.1 will use LFN API whenever possible (e.g. under MS-DOS 7 + DOSLFN or in a Win9x DOS window), or will fallback to 8.3 names if LFN API is unavailable (e.g. on real-mode MS-DOS 6.x or 7.x without DOSLFN). By now I have tested it and worked under the following environments: 1. Real-mode MS-DOS 6.22 boot disk (8.3 filename only) 2. Real-mode MS-DOS 7.10 + DOSLFN 0.41c (supporting LFN) 3. Windows 95 DOS window (supporting LFN) 4. Windows 98SE DOS window (supporting LFN) I have not tested extremely long file names though, and it also won't automatically add quotation marks ("") when there are spaces in the long file name. Unlike DOSKEY 2.0, this DOSKEY 2.1 will not convert the appended partial file/dir names into lower case, but instead will append the partial names exactly as they are stored in the disk (e.g. Windows98SETUP.exe). I have further updated DOSKEY to version 2.2. Major changes from version 2.1 are: 1. Added options /D and /E to disable and enable LFN support per user request (LFN enabled by default, as in version 2.1). 2. Bugfix: When LFN is available and user entered partial file/dir name that only matches 8.3 filename but not LFN (e.g. when typing WINDOW~1 instead of WINDOWS98), the completed file/dir name was not correct. Now it will be expanded to a complete 8.3 filename (e.g. WINDOW~1.EXE) in this particular case. 3. Increased default buffer size to 640 reflecting an increase of file/find buffer for better support for long path names. 4. Other minor changes relating to LFN.
Click here to download doskey22.zip
Click here to download with full source doskey22src.zip