Unique DOS Utilities (C) 1994-1995 By Bill Stewart Revision History Version 9.6: 03-31-95 Added STUFF to "stuff" characters into the keyboard buffer; that is, it can type a series of keystrokes for you to pass to the program that follows in the batch file. You can also use it as the last line of a batch file to enter a command that should run after the batch file is finished. PAGE has been rewritten to allow full backward and forward scrolling, searching, and more, with a full-screen interface. Press H or ? for help inside PAGE. For full details, see the User's Manual. READLN has been enhanced with a better line input editor. See the manual for the keys you can use to edit the string. The same input editor is available in the revamped PAGE, when it prompts for line numbers and search strings. The utilities that use quoted command line strings to define prompts can now display double quotation marks as a part of the string. Precede each double quote you want to display with a back slash (\); e.g. XPAUSE "Press \"Enter\" to continue." will cause XPAUSE to display the following prompt: Press "Enter" to continue. Users can now set the DRIVES environment variable to set the drives that FFIND and GO should search. For example, the DOS command SET DRIVES=CDEF will tell FFIND and GO that they should search those four drives. The /D switch on the command line will override the DRIVES variable if it is set. The best place to put a default SET DRIVES is in the AUTOEXEC.BAT file. The User's Manual, Installation Guide, and order form have been revised and expanded. The pages in these files have been formatted with underlining capability which most printers should print properly, even laser printers. Version 9.5: 02-11-95 Added the KILL utility for overwriting and deleting files. Added the READLN utility to enable batch files to read entire strings of input. Updated LOGOUT's messages slightly to promote clarity. Also changed the keystrokes--you have to press Esc if you want to bypass the five-second wait or quit LOGOUT at the end, and you have to press F10 to reboot. Any other keystrokes are ignored. Updated FFIND and GO to allow the user to specify the drives to search, rather than just searching all non-floppy drives (which could take a while if there are network drives, CD-ROM drives, etc.). Removed directory cluster calculations from SIZE. These were sometimes inaccurate. Also added the /C switch to cause SIZE to skip cluster size calculations. This is useful for compressed drives and before backups. Fixed a subtle bug in SREBOOT that would cause it to behave oddly if certain characters appeared in the prompt. Updated the utilities to consider MS-DOS 6.22+ DriveSpace (DRVSPACE.*) drives the same as DoubleSpace and Stacker drives. Added Q to the display of the "(Y/N/R)?" prompts (now the prompt reads "(Y/N/R/Q)?"). Some of the utilities now require you to press Enter after answering a "(Y/N)?" prompt. Reformatted the user's manual to use only 58 lines per page so it should print properly on a laser printer. Version 9.1: 09-17-94 Corrected an error in documentation about the GO utility. If you change to a directory using GO and it wasn't the directory you wanted, repeating the same GO command will not change you to the next directory that matches. Instead, spell out the directory more specifically. For example, if you have the directories \4DOS, \DOS, and \DOSUTILS (sorted in that order), typing GO DOS will always change you to \4DOS, and GO \DOS will always change you to \DOS. To change to \DOSUTILS, you could type GO DOSU. Fixed bugs in REDATE command-line parameter passing. It now parses the command line arguments correctly. With previous versions, REDATE would use the current date and time if both a second file name and the /P switch were specified. This has been fixed. Version 9.0: 09-02-94 Added the GO directory utility. It lets you change directories based on partial names and save the current directory so you can return to it in a batch file. Added the LOGOUT system shutdown utility. Enhanced FFIND to search all non-floppy drives (drive letters starting with C). Expanded MDEL so it is now more flexible than before. Now it doesn't just delete every file seen and unseen; it will only delete files that are not read-only unless you specify the /R or /H switches. (Also, unlike previous versions, it will let you delete essential system files if you specify /H--so be careful with it.) ONCE is now packaged with the archive in reset form. This avoids problems if someone uses ONCE.EXE for the first time on the same day of the month the file was released. SWAP now displays the temporary filename it uses when it works. It won't let you swap a file's name with itself. Also, it checks to make sure that two filenames were entered. XPAUSE now has an "escape" character (\) that lets you use the !, @, #, and _ characters as actual keys in the key list; e.g. /K:\!\@ means that you can press ! or @ (! and @ don't represent Ctrl+C and Enter if preceded by the \ character). All the documentation has been rewritten, expanded, formatted and consolidated together into one user manual. Simply print the file UNIQUE.MAN. Version 8.3: 05-28-94 ONCE's on-line help has been expanded with a batch example. Help for the /R switch now makes more sense. Also, it now displays a status message when you use /R. An irritating bug in SREBOOT caused it to do cold reboots when it shouldn't have. This has been fixed. Updated the display for STAT to make it more readable. XPAUSE's on-line help and some places in the documentation incorrectly reported that the /S switch returned an ERRORLEVEL of 1 for the left Shift key and an ERRORLEVEL of 2 for the right Shift key. The incorrect descriptions have been fixed. Version 8.2: 05-23-94 Fixed two minor display bugs in FFIND. Added the additional display of two scan codes for F11 and F12. Some memory-resident programs allow you to specify the scan code for a "pop-up" key, and the scan codes reported by the BIOS for these keys are not what these programs are looking for. Updated REDATE to allow a specific date and time to be used. Corrected REDATE's help text screen (it said /N and should have said /P). SREBOOT can now detect if Microsoft Windows is active and will not allow you to reboot the machine if Windows is running. Also, SREBOOT now implements an alternate rebooting routine if the /X switch is specified on the command line. The rebooting routine used with /X is more compatible with various machines; however, the /C switch (if specified) will be ignored. XPAUSE's /Q switch contained a bug that caused XPAUSE to delete the current line of text from the screen. This bug has been corrected. Version 8.1: 03-05-94 Added FFIND file finder utility. MDEL now prompts before deleting all files in a directory (*.*). The /Y switch has been added to bypass the prompt. Several minor display problems fixed. Two display bugs in SIZE were fixed. XPAUSE has the following changes: o Added the /Q switch to prevent XPAUSE from displaying a prompt. o Added a 0 timeout value to XPAUSE, so it could report the first key in the keyboard buffer (if the keyboard buffer was not empty). o Added the underscore ("_") as the character to represent the Spacebar. o XPAUSE now only displays the on-line help screen if the /? switch was the first parameter on the command line. Previously, if the characters /? were together anywhere on the command line, XPAUSE would display the on-line help screen. In previous versions of the Unique Utilities, output redirection and screen paging did not work together correctly. For example, a command such as size > dirlist.txt would work properly, but not if a key was pressed while SIZE was working. If a key was pressed, SIZE would pause, and some of the data being redirected was lost. Now, although the utilities cannot detect when data is being redirected, the redirection now works properly. Changed the look of the "Paused:" prompt slightly. Added the Q key as an "abort" key along with Ctrl+C and Esc (a handy feature borrowed from UNIX). In addition, all keystrokes that do appear now appear in uppercase. Now, the utilities display the possible ERRORLEVEL values for their error conditions after the help information when the /? switch is specified. DDEL and SIZE would incorrectly interpret directory names with wildcard characters as valid. This has been fixed. Version 8.0: 02-19-94 Added COLORS to display a color attribute table. Altered DTCLEAR slightly to create a temporary file instead of a directory. This ensures that it won't try to create a file or directory that doesn't already exist. Improved DUMP's speed. Added subdirectory searching and the ability to delete only zero-length files to MDEL. It also displays how much total disk space it freed. ONCE's on-line help message is now much clearer. REDATE now displays the number of files it redated. Rewrote SIZE to display each directory when it is found rather than reading the whole list first and displaying it later. It runs a tad slower, but if it is being used on a large volume (such as a CD-ROM), it is less frustrating because you can see it work. Also added the /N switch to bypass the subdirectory search. It now displays the number of directories it found; and if it is aborted, it displays the totals up to that point. Lastly, SIZE knows now that directories actually take up a disk cluster, and adds a the cluster size to each directory in the report (except for the root directory). Changed STAT's display to include one decimal point in its percentages, so it would be more precise. Improved the "Paused:" prompt to include screen attribute changes (primarily so PAGE's output would be easier to read). Corrected PTD so that /? is a valid paramater to the program being timed. Previously, if /? was anywhere on the command line, PTD's on-line help was displayed. Now, you can specify /? as a parameter to the program you intend to time. Also, it now requires about less memory than before (it now needs only about 17K). SREBOOT and XPAUSE can now detect switches if they are placed directly after the program name (e.g. "SREBOOT/N" now works as expected). The Unique Utilities are now shareware. Print out ORDERFRM.TXT to a standard printer for the order form. Version 7.21: 01-21-94 BLANK revised to save and restore the screen. The /C switch can be used to make it behave as it did in versions 7.2 and below. More error detection added for DUMP and MDEL. If an I/O error occurs, the utilities will exit with ERRORLEVEL 10 (not the number displayed). Version 7.2: 01-14-94 DDEL is now far faster than before, but does not allow the Esc or Ctrl+C keystrokes to abort the program prematurely. The extra speed is worth it; just be sure you have a file recovery program handy just in case. KEYTEST has been revised to have a cleaner display. It now displays all codes in decimal and hexadecimal. It also displays the keyboard scan codes for keys pressed. It can also show the full range of 256 characters (except 20h and FFh, because they display blank characters). It does this by writing directly into the screen buffer, so it may not be compatible with windowing software such as DESQview unless you run it in a virual DOS machine. ONCE now sets the archive attribute for the program file, because the date is actually being changed. Version 7.1: 01-07-94 BLANK utility added to blank the screen until any key is pressed. KEYTEST utility added to display the keyboard codes for keys pressed. ONCE utility added to let batch files do things once per day. SREBOOT utility added to reboot the computer safely (and it's just nifty anyway). STAT utility added to display disk space usage statistics for a disk. DDEL now displays the disk space it freed up even if it was aborted. A harmless bug in MDEL would cause the R key to not function properly if multiple file sets were specified to be deleted (e.g. "mdel *.bak *.sav"); MDEL would delete the first set without prompting further, but prompting would resume for the next file set. This has been fixed. Display of free disk space moved from SIZE to the new STAT utility. SWAP now creates a temporary file when swapping the names of two files. XPAUSE now has the capability of setting the ERRORLEVEL based upon which shift key is being held down (/S switch). See the documentation for XPAUSE for more information about how this works. Drive and directory detection routines for the utilities improved to include better support for different media types (including CD-ROM drives). The new routines are a bit slower but more compatible. Replaced the keyboard input routine to enable support for enhanced keyboards. A side effect is that Ctrl+Break is totally ignored; use Ctrl+C instead. Corrected documentation for PAGE (the "<" was missing from the syntax description). All utilities recompiled using Borland's Turbo Pascal 7.0. Version 7.0: 11-26-93 See UPGRADE.TXT for information on upgrading from a previous version of the Unique Utilities to the new version. The programs now handle write protected disks and other similar situations that previously produced runtime errors. "(Y/N)?" prompts (such as in DDEL, DTCLEAR, and REDATE) now only require a single Y or N keystroke; Esc as well as Ctrl+C or Ctrl+Break can be used to quit the program at one of these prompts. Some of the "(Y/N)?" prompts have been changed to "(Y/N/R)?" (for "rest" or "remaining"). The R choice will confirm the action for the current file and all subsequent files. A new, easier to use prompt has been created: Paused: Esc=abort, Space=screen, Enter=line, (any other key... DDEL and MDEL will now halt if Ctrl+C, Ctrl+Break, or Esc are pressed, as a safety measure. MDEL now does not display the names of system files it ignores. Also, /N must now be last parameter on the command line, instead of the first. This was to make it more consistent with other standard DOS commands. PAGE added to replace DOS's MORE command. Added the capability of timing programs to PTD. READ replaced with PAGE. REDATE no longer prompts when an action will affect an entire directory. The syntax is also more restrictive--you cannot specify a directory name or drive letter as the destination. The exact files must be specified. SIZE will now display the amount of free disk space on the drive it displayed a directory size for. (A practical upshot of this is that if the directory size and free size are added together, their sum will be approximately equal to the amount of disk space that would be free were DDEL to be used to delete the directory.) XPAUSE has been totally overhauled. New features include a more flexible prompt and a timeout period before selecting a default action. The /D mode has also been greatly enhanced to include the display of Ctrl keys, Alt keys, function and arrow keys, and so on. Refined the source code for the programs to be more efficient and modular. Version 6.0: 10-30-93 Added DUMP to display all printable characters in a file. READ is now more functional and cleans up after itself better. REDATE now assumes the current date and time if no source file is specified (no more need to type "CON"). SIZE can now find hidden directories nested beneath other directories. It also doesn't display the line of dashes and "total bytes" if the size of only one directory was displayed. SWAP now works properly from different directories. Removed some redundant code in XPAUSE. Version 5.5: 10-15-93 Added READ utility to read the included text files. SIZE now calculates cluster sizes for disks. The end result is that it more accurately reports the actual amount of disk space used. XPAUSE has been enhanced to allow you to specify the allowable keys to press. Corrected minor bug in screen pausing routines. Speed improved for MDEL, REDATE, and DDEL. Version 5.3: 10-07-93 Improved speed of DDEL. Version 5.2: 09-24-93 Added the MDEL utility. Fixed bug in PTD (it did not display 'am' properly). Corrected REDATE's documented ability to retrieve the source date and time stamp from read-only, hidden, and system files. DDEL now displays each directory name after it is deleted. Thanks to Rob Stewart for the input on this idea. Version 5.1: 09-17-93 Updated SIZE to include support for MS-DOS DoubleSpace and Stac Electronics' Stacker. Thanks to my brother Rob Stewart for the idea. Version 5.0: 09-03-93 Added the DDEL, PTD, and SWAP utilities. Added /P switch to PATHS. PATHS now ignores bad command line parameters. REDATE no longer says "Error" when it encounters a read-only file. SIZE now recognizes hidden directories. Added QUICKREF.TXT and FILES.TXT. Version 4.0: 08-27-93 Added the XPAUSE utility (formerly XPAUSE20). Added FILE_ID.DIZ description file for BBS uploading. Version 3.0: 08-26-93 Added the SIZE utility. Changed a prompt message in REDATE. Version 2.0: 08-12-93 First "official" public release.