Tuesday, March 9, 2010

Exp -1 Study & practise of interna and external DOS commands

MS-DOS (pronounced /ˌɛmɛsˈdɒs/, em-es-dos; short for MicroSoft Disk Operating System) is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating systems offering a graphical user interface (GUI), in particular by various generations of the Microsoft Windows operating system.
MS-DOS grew from a 1981 request by IBM for an operating system for its IBM PC range of personal computers. Microsoft quickly bought the rights to QDOS (Quick and Dirty Operating System), also known as 86-DOS,[1] from Seattle Computer Products, and began work on modifying it to meet IBM's specification. The first edition, MS-DOS 1.0, was launched in 1982.[2] The version shipped with IBM's PCs was called PC DOS. Although MS-DOS and PC-DOS were initially developed in parallel by Microsoft and IBM, the two products eventually went their separate ways.
During its life, several competing products were released for the x86 platform,[3] and MS-DOS itself would go through eight versions, until development ceased in 2000. Ultimately it was the key product in Microsoft's growth from a programming languages company to a diverse software development firm, providing the company with essential revenue and marketing resources. It was also the underlying basic operating system on which early versions of Windows ran as a GUI.
History

MS-DOS was a renamed form of 86-DOS — informally known as the Quick-and-Dirty Operating System or Q-DOS [2] — owned by Seattle Computer Products, written by Tim Paterson[2]. Microsoft needed an operating system for the then-new Intel 8086 but it had none available, so it licensed 86-DOS and released a version of it as MS-DOS 1.0[2]. Development started in 1981, and MS-DOS 1.0 was released with the IBM PC in 1982[2]. (86-DOS, in turn, was written as an interim replacement for the delayed CP/M-86, when Seattle Computer Products' needed an operating system to sell with their 8086 processor card for the S-100 bus.) Tim Paterson is considered the original author of DOS and he is called "The Father of DOS"[2][n 1].
Worried by possible legal problems, in June 1981 Microsoft made an offer to Rod Brock, the owner of Seattle Computer, to buy the rights for 86-DOS. An agreement to release all rights to the software was signed in June 1981. The total cost was $75,000.
Originally MS-DOS was designed to be an operating system that could run on any 8086-family computer. Each computer would have its own distinct hardware and its own version of MS-DOS, similar to the situation that existed for CP/M, and with MS-DOS emulating the same solution as CP/M to adapt for different hardware platforms. To this end, MS-DOS was designed with a modular structure with internal device drivers, minimally for primary disk drives and the console, integrated with the kernel and loaded by the boot loader, and installable device drivers for other devices loaded and integrated at boot time. The OEM would use a development kit provided by Microsoft to build a version of MS-DOS with their basic I/O drivers and a standard Microsoft kernel, which they would typically supply on disk to end users along with the hardware. Thus, there were many different versions of "MS-DOS" for different hardware, and there is a major distinction between an IBM-compatible (or ISA) machine and an MS-DOS [compatible] machine. Some machines, like the Tandy 2000, were MS-DOS compatible but not IBM-compatible, so they could only run software written exclusively for MS-DOS without dependence on the peripheral hardware of the IBM PC architecture.
This design would have worked well for compatibility, if application programs had only used MS-DOS services to perform device I/O, and indeed the same design philosophy is embodied in Windows NT (see Hardware Abstraction Layer). However, in MS-DOS's early days, the greater speed attainable by programs through direct control of hardware was of particular importance, especially for games, which often pushed the limits of their contemporary hardware. Very soon an IBM-compatible architecture became the goal, and before long all 8086-family computers closely emulated IBM's hardware, and only a single version of MS-DOS for a fixed hardware platform was needed for the market. This version is the version of MS-DOS that is discussed here, as the dozens of other OEM versions of "MS-DOS" were only relevant to the systems they were designed for, and in any case were very similar in function and capability to the same-numbered standard version for the IBM PC, with a few notable exceptions.
While MS-DOS appeared on PC clones, true IBM computers used PC DOS, a rebranded form of MS-DOS. Ironically, the dependence on IBM-compatible hardware caused major problems for the computer industry when the original design had to be changed. For example, the original design could support no more than 640 kilobytes of memory (the 640 kB barrier), because IBM's hardware design reserved the address space above this limit for peripheral devices and ROM. Manufacturers had to develop complicated schemes (EMS and XMS, and other minor proprietary ones) to access additional memory. This limitation would not have been a problem if the original idea of interfacing with hardware through MS-DOS had endured. (However, MS-DOS was also a real-mode operating system, and the Intel x86 architecture only supports up to 1 MB of memory address space in Real Mode, even on Pentium 4 and later x86 CPUs, so for simple access to megabytes of memory, MS-DOS would have had to be rewritten to run in 80286 or 80386 Protected Mode.) Also, Microsoft originally described MS-DOS as "an operating system for Intel 8086-based microcomputers", and the 8086 CPU (and its cousin the 8088) itself has only 1 MiB of total memory address space.



Competition
On microcomputers based on the Intel 8086 and 8088 processors, including the IBM PC and clones, the initial competition to the PC DOS/MS-DOS line came from Digital Research, whose CP/M operating system had inspired MS-DOS. In fact, there remains controversy as to whether Q-DOS was more or less plagiarised from early versions of CP/M code. Digital Research released CP/M-86 a few months after MS-DOS, and it was offered as an alternative to MS-DOS and Microsoft's licensing requirements, but at a higher price. Executable programs for CP/M-86 and MS-DOS were not interchangeable with each other; much applications software was sold in both MS-DOS and CP/M-86 versions until MS-DOS became preponderant (later Digital Research operating systems could run both MS-DOS and CP/M-86 software). MS-DOS supported the simple .COM and the more advanced relocatable .EXE executable file formats; CP/M-86 a relocatable format using the file extension .CMD.
Most of the machines in the early days of MS-DOS had differing system architectures and there was a certain degree of incompatibility, and subsequently vendor lock-in. Users who began using MS-DOS with their machines were compelled to continue using the version customized for their hardware, or face trying to get all of their proprietary hardware and software to work with the new system.
In the business world the 808x-based machines that MS-DOS was tied to faced competition from the Unix operating system which ran on many different hardware architectures. Microsoft itself sold a version of Unix for the PC called Xenix.
In the emerging world of home users, a variety of other computers based on various other processors were in serious competition with the IBM PC: the Apple II, early Apple Macintosh, the Commodore 64 and others did not use the 808x processor; many 808x machines of different architectures used custom versions of MS-DOS. At first all these machines were in competition. In time the IBM PC hardware configuration became dominant in the 808x market as software written to communicate directly with the PC hardware without using standard operating system calls ran much faster, but on true PC-compatibles only. Non-PC-compatible 808x machines were too small a market to have fast software written for them alone, and the market remained open only for IBM PCs and machines that closely imitated their architecture, all running either a single version of MS-DOS compatible only with PCs, or the equivalent IBM PC DOS. Most clones cost much less than IBM-branded machines of similar performance, and became widely used by home users, while IBM PCs had a large share of the business computer market.
Microsoft and IBM together began what was intended as the follow-on to MS/PC DOS, called OS/2. When OS/2 was released in 1987, Microsoft began an advertising campaign announcing that "DOS is Dead" and stating that version 4 was the last full release. OS/2 was designed for efficient multi-tasking — an IBM speciality derived from deep experience with mainframe operating systems — and offered a number of advanced features that had been designed together with similar look and feel; it was seen as the legitimate heir to the "kludgy" DOS platform.
MS-DOS had grown in spurts, with many significant features being taken or duplicated from Microsoft's other products and operating systems. MS-DOS also grew by incorporating, by direct licensing or feature duplicating, the functionality of tools and utilities developed by independent companies, such as Norton Utilities, PC Tools (Microsoft Anti-Virus), QEMM expanded memory manager, Stacker disk compression, and others.
During the period when Digital Research was competing in the operating system market some computers, like Amstrad PC-1512, were sold with floppy disks for two operating systems (only one of which could be used at a time), MS-DOS and CP/M-86 or a derivative of it. Digital Research produced DOS Plus, which was compatible with MS-DOS 2.11, supported CP/M-86 programs, had additional features including multi-tasking, and could read and write disks in CP/M and MS-DOS format.
While OS/2 was under protracted development, Digital Research released the MS-DOS compatible DR-DOS 5, which included features only available as third-party add-ons for MS-DOS (and still maintained considerable internal CP/M-86 compatibility). Unwilling to lose any portion of the market, Microsoft responded by announcing the "pending" release of MS-DOS 5.0 in May 1990. This effectively killed most DR-DOS sales until the actual release of MS-DOS 5.0 in June 1991. Digital Research brought out DR-DOS 6, which sold well until the "pre-announcement" of MS-DOS 6.0 again stifled the sales of DR-DOS.
Microsoft had been accused of carefully orchestrating leaks about future versions of MS-DOS in an attempt to create what in the industry is called FUD (fear, uncertainty, and doubt) regarding DR-DOS. For example, in October 1990, shortly after the release of DR-DOS 5.0, and long before the eventual June 1991 release of MS-DOS 5.0, stories on feature enhancements in MS-DOS started to appear in InfoWorld and PC Week. Brad Silverberg, Vice President of Systems Software at Microsoft and General Manager of its Windows and MS-DOS Business Unit, wrote a forceful letter to PC Week (November 5, 1990), denying that Microsoft was engaged in FUD tactics ("to serve our customers better, we decided to be more forthcoming about version 5.0") and denying that Microsoft copied features from DR-DOS:
"The feature enhancements of MS-DOS version 5.0 were decided and development was begun long before we heard about DR-DOS 5.0. There will be some similar features. With 50 million MS-DOS users, it shouldn't be surprising that DRI has heard some of the same requests from customers that we have." – (Schulman et al. 1994). [6]
The pact between Microsoft and IBM to promote OS/2 began to fall apart in 1990 when Windows 3.0 became a marketplace success. Much of Microsoft's further contributions to OS/2 also went in to creating a third GUI replacement for DOS, Windows NT.
IBM, which had already been developing the next version of OS/2, carried on development of the platform without Microsoft and sold it as the alternative to DOS and Windows.

 Legal issues

As a response to Digital Research's DR-DOS 6.0, which bundled SuperStor disk compression, Microsoft opened negotiations with Stac Electronics, vendor of the most popular DOS disk compression tool, Stacker. In the due diligence process, Stac engineers had shown Microsoft part of the Stacker source code. Stac was unwilling to meet Microsoft's terms for licensing Stacker and withdrew from the negotiations. Microsoft chose to license Vertisoft's DoubleDisk, using it as the core for its DoubleSpace disk compression[7].
MS-DOS 6.0 and 6.20 were released in 1993, both including the Microsoft DoubleSpace disk compression utility program. Stac successfully sued Microsoft for patent infringement regarding the compression algorithm used in DoubleSpace. This resulted in the 1994 release of MS-DOS 6.21, which had disk-compression removed. Shortly afterwards came version 6.22, with a new version of the disk compression system, DriveSpace, which had a different compression algorithm to avoid the infringing code.
Prior to 1995, Microsoft licensed MS-DOS (and Windows) to computer manufacturers under three types of agreement: per-processor (a fee for each system the company sold), per-system (a fee for each system of a particular model), or per-copy (a fee for each copy of MS-DOS installed). The largest manufacturers used the per-processor arrangement, which had the lowest fee. This arrangement made it expensive for the large manufacturers to migrate to any other operating system, such as DR-DOS. In 1991, the U.S. government Federal Trade Commission began investigating Microsoft's licensing procedures, resulting in a 1994 settlement agreement limiting Microsoft to per-copy licensing. Digital Research did not gain by this settlement, and years later its successor in interest, Caldera, sued Microsoft for damages. This lawsuit was settled with a monetary payment of $150 million.

End of MS-DOS
Today, MS-DOS is rarely used for desktop computing. Since the release of Windows 95, it was integrated as a full product used for bootstrapping and troubleshooting, and no longer released as a standalone product.
Windows XP contains a copy of the core MS-DOS 8 files from Windows Me, accessible only by formatting a floppy as an "MS-DOS startup disk". These core files are a stripped down bootstrap only, which does not include CD-ROM support. With Windows Vista the files on the startup disk are dated 18 April 2005 but are otherwise unchanged, including the string "MS-DOS Version 8 (C) Copyright 1981-1999 Microsoft Corp" inside COMMAND.COM.
However the only versions of DOS currently recognized as stand-alone OSs, and supported as such by the Microsoft Corporation are DOS 6.0 and 6.22, both of which remain available for download via their MSDN, volume license, and OEM license partner websites, for customers with valid login credentials.
Today, DOS is still used in embedded x86 systems due to its simple architecture, and minimal memory and processor requirements. The command line interpreter of NT-based versions of Windows, cmd.exe, maintains most of the same commands and some compatibility with DOS batch files.
Microsoft has introduced a new command-line called PowerShell. Powershell offers more functionality than MS-DOS
INTERNAL COMMAND



This command gives a listing of most of the files and directories on a disk (Hard disk and floppy disk). In DOS 3.3 and below, there are only 2 known switches:
/W - gives the directory listing wide across your screen without times, dates, and sizes listed
/P - pauses the output of the DIR command if there are more files than can be listed on your screen at once

You can use these two switches interchangeably with no problems.
With DOS 5 and up you have MANY other switches you can use also. I hope to list them soon, although they don't do you much good.
UNDOCUMENTED: Use DIR followed by a comma to see EVERY file and directory, even if they're hidden! (Or have their SYSTEM attribute set).
C:\>DIR,
Use DIR followed by 3 or more periods to see ONLY files and directories WITHOUT any extension.
C:\>DIR....
These two tricks only work on DOS 5 to 6.22. They should work for DRDOS as well. To view hidden and system files under DOS 7 (Windoze 95) use "DIR /A"

TYPE

This command will dump the contents of a text file to your screen. Example:
C:\>type bill.txt
Bills stuff document.
Bill has 2 things:
1 basket ball
1 used sock
C:\>

This should mostly be used on plain ASCII text files. While you can use TYPE to print out an executable program to the screen, it will be a bunch of junk and you'll get a lot of annoying beeps. TYPE will stop printing a file to your screen when it encounters an End-Of-File character. This can come in handy if you want to keep something secret. I explain it on my SECRETS page. You can also get fancy and TYPE text files to things like your printer or Modem if you like.
C:\>type file.txt > lpt1
C:\>type upload.doc > com2

Note: With ALL versions of MSDOS and PCDOS you cannot use TYPE with wildcards (* and ?). BUT, under DRDOS 7 you can.

DEL and ERASE

DEL and ERASE do the exact same thing- why someone would type out ERASE every time they wanted delete a file is beyond me. You can use wild cards with either command without any problems. You can also use them in batch files easily.
TECH EXPLANATION: these commands don't destroy any data. They simply place the HEX character E5 (In HEX, E5 makes 1 ASCII character) as the first letter in the file's name and blank out that files place in the FAT. Don't confuse this with hiding a file - that has to do with the files attribute setting. The DIR command ignores any file it finds beginning with E5. If you delete a sensitive file on a diskette- but don't copy anything back to the disk or over write it- that document is still EASILY accessible. That's how UNDELETE and other utilities work. They DO look for files beginning with E5 (They also have to track down which clusters the file was stored on). If you don't have a program to over-write files, you can just copy a "safe" file of the SAME LENGTH over top of it.






MD and MKDIR

This lets you Make a Directory, hence the MD (MKDIR is a hold over from UNIX style OS's. If you switch between a UNIX OS and DOS, you may come to appreciate MKDIR). You type MD followed by a file name. You can nest (Make a directory within a directory) up to 16 directories on most DOS only systems (No Windoze). Some will let you nest up to 32. On windoze 95 machines you can get 3 lines of directories in a DOS box and 16 directories in MS-DOS mode. At this moment I really don't know where the limitation comes from, as it appears to be limited by the length of the command line. But I would think something other than the length of the command line would create the limitation (Like the FAT or something). The shorter the directory name the more you can nest. Anywho, it is good practice to separate your files and programs so everything is organized.










CD and CHDIR

This command lets you change directories. Lets say you are at root (Just a "C:\>" prompt) and you want to get into a directory named WINDOWS. Type the following:
C:\>cd windows
You will get a prompt like this:
C:\WINDOWS>

Now, wasn't that fun?! But wait, there's more! Oh know!! You need to get back to your root directory, and quick! Type "CD.." and you will be magically transported back to root. Ok, go back into any directory again. Now type DIR to see what is in there. You will notice that there are two sub directories, one called "." and the other called "..". They represent where you were and where you are. The "." is the directory you are in. ".." represents the parent directory, or the directory this directory is in (Confused yet?! Hang on, it'll get better the more you use it!). When you type "CD.." you are telling DOS to go to the directory you where just in. If you type "CD." nothing will happen since you are in that directory already. Pop quiz: what if you are about 7 directories in and you need to get to root? Instead of typing CD.. seven times in a row, use "CD\". Another trick; lets say that you are in your "C:\DOS>" directory and you want to get into "C:\GAMES\NES>"? Use this:
C:\DOS>cd \games\nes
You will be sent directly into your NES directory within your GAMES directory.

COPY

This command obviously copies files to different spots on your disks. It does not remove the source file after writing the new file. Usage:
C:\copy mystuff.doc A:
This example will copy "mystuff.doc" to your A: drive. Here's another example:
C:\copy mystuff.doc A:\stuff.doc
This copies "mystuff.doc" to the A: drive and renames it to "stuff.doc". Alright, say you want to combine two plain text files into one big happy file. This will accomplish that:
C:\copy mystuff.doc+herstuff.txt C:\house\ourstuff.yea
This combines "mystuff.doc" and "herstuff.txt" with the + symbol into one file named "ourstuff.yea" in the HOUSE directory. Any questions?
SWITCHES: /A /B /V

The switch /A treats a file like an ASCII text file. This means that if the file has an End-Of-File character in the middle of it everything up until the [E-O-F] character will be copied. Anything after that will be chopped off.
The switch /B treats the file like a binary file and will copy EVERY THING up the specified file length to the destination. If you have a an ASCII text file with an End Of File maker in the middle of it, copy will cut off every thing after the End Of File marker. Using the /B switch will ignore all control characters including End Of File markers. Example: if you try to TYPE the COMMAND.COM file to examine its contents, it stops early before you get to see anything interesting. Using the /B switch with copy we can see the ENTIRE thing.

COPY /B COMMAND.COM CON
This chain of commands sends, without interruption on End Of File control characters, the contents of COMMAND.COM to the CON device, which is your screen. It will beep a lot and take a long time to all go by, but you will be able to see all of its error messages and commands it will accept.
Switch /V makes COPY VERIFY if it correctly made a copy to the destination. I have never used this and I don't ever plan too. Unless you are tracking suspicious virus activity or you are dealing with bad media (Diskettes that are failing) you should never have to use /V.

RD and RMDIR

RD will Remove a Directory. Use RD followed by the name of the directory you wish to delete. You must empty the directory first or you will just get an error message from DOS. Since DOS 5.00 there has been a nifty utility called DELETREE which doesn't care if the directory has files in it.






















VER

VER will tell you what version of DOS you are using. If you happen to be stuck with widoz`95 VER will tell you some Windows version junk.
Undocumented: VER/R will tell you some more information like the revision letter and if DOS is in HIGH memory or not. Should work with DOS 5 on up.






















VOL

VOL will tell you the volume label of your hard drive or floppy disk. On DOS 5 and up it will also give you a serial number too. This can come in handy for batchfile programming if you need your INSTALL.BAT file to make sure the right disk is inserted in the disk drive.






















DATE

This command lets you set your systems date.
C:\>date
Current date is Wed 03-11-98
Enter new date (mm-dd-yy):
C:\>

You can just hit enter to not change it or you can specify a new system date. Not very complicated. It can also be used in a batchfile to log the date and/or time if some redirection is used.










TIME

This lets you set your systems time.
C:\time
Current time is 1:46:11.30p
Enter new time:
C:\>

You don't need to specify the time to the nearest millisecond like DOS displays it, an hour and a minute will do. Notice the p at the end of the second line. That means it's P.M. You MUST put a p at the end of your new time or else your computer will be set to A.M. You can put an a there if you want an A.M. time, or you can just leave it blank.






















PATH

The PATH is where DOS searches for programs. When you type the name of a program, like FORMAT, DOS will look through it's list of INTERNAL COMMANDs. Since FORMAT isn't an internal command DOS will then look through your current directory for that programs name. If it doesn't find FORMAT in your current directory it will look through all of the directories listed in your PATH environment variable. You can see what your current PATH is by just typing PATH. You can also see it by using SET, which lists ALL environment variables, of which PATH is one. Normally your AUTOEXEC.BAT file will set your PATH statement, but you can create or modify it at any time. Here's an example of how to view it:
C:\>path
PATH=C:\DOS;C:\WINDOWS;C:\UTIL;D:\GAMES;

C:\>
To change your path just use PATH followed by the new PATH directories. Notice the semi-colon between directories, this separates entries. The equal sign is optional when you are setting the PATH statement. Be careful, when you set the PATH you will replace the previous one. If you want to keep what is already there you will need the following batchfile, unless you retype the whole PATH string again.
@ECHO OFF
SET OLDPATH=%PATH%
SET PATH=%PATH%%1
SET OLDPATH=

You would use this as follows:
C:\>pathit.bat C:\BIN Where pathit.bat is your batchfiles name, and C:\BIN is the name of the directory you wish to add. This is how this batchfile works: First, it saves your current PATH as OLDPATH. Next it makes a new PATH starting with the old one, and then appends the directories you list on the command line to the end. There CANNOT be a space between the environment variable "%PATH%" and the command line switch "%1". You also need to know if a semi-colon is already at the end of your current PATH statement or not. If it is already there you can use the example as-is. If it ain't, you will either need to put one in the batchfiles second line, or add one before the path of the directory you are adding to your PATH. If you got lost with all this batchfile stuff you should visit my batchfile page. It will explain almost all of this.

CTTY

This cryptic and rarely used command can have some security value. It defines the device used to accept and display data (I.E. Your keyboard and monitor). If you set CTTY equal to the NULL device you must reset the computer in order to regain access. You can use it as the first line of your AUTOEXEC before it runs some sensitive programs that you don't want a user to CTRL+C out of. After you run the program or batch commands you can regain access to the system by having a CTTY CON statement at the end of your AUTOEXEC. Example:
CTTY NULL
COPY C:\WINDOWS\SECURE\*.INI C:\WINDOWS
ECHO Y|DEL C:\WINDOWS\TEMP\*.*
CTTY CON

Other values you can substitute for NULL are: AUX, PRN, COMx, LPTx, and maby some others I can't think of right now. The "x" in COMx and LPTx can be any valid number for your system: COM1, COM3, LPT1, ect.

BREAK

This lets you control extended error checking. "Duh, what the heck does that mean?" Well, if BREAK is ON it makes DOS check whether you are pressing CTRL+C or CTRL+BREAK more often than it normally would. On an older machine this may slow it down a bit too. To see if BREAK is ON or OFF just type BREAK at a command prompt.
C:\>break
BREAK is off

C:\>
You can turn BREAK on and off by using BREAK ON and BREAK OFF.





















CLS

This command clears the screen. It also places your cursor at the top left-hand corner of your screen (Also called the "home position"). Got it?

















PROMPT

This is used to set your command prompt. If you use it by itself your prompt will change to C>. Your prompt looks like this most of the time:
C:\>
You can change it by typing PROMPT followed by any text that you want as your new prompt. There are also some switches you can add to spice up your boring old prompt.
$$ adds a $ to your prompt
$t states the time
$d states the date
$p lists your current directory and drive letter
$v adds your DOS version (Or Windoze 95 version)
$n lists just your current drive
$g the > character
$l the < character
$b the | character
$q the = character
$h a backspace, it deletes the last letter of your prompt
$e the escape character, can be A LOT of fun
$_ does a carriage return after listing your prompt
The most noteworthy of these are $P, $G, and $E. Just using $P$G will let you see your current path and have a > to separate your prompt from your commands. $E lets you enter escape sequences directly from a DOS prompt. You can set up key macros with it as well as change your background and foreground colors and move the cursor position.
You can also add control characters to your prompt. Using PROMPT ^A (Where ^A is CTRL+A) will make your DOS prompt a smiley face! Adding CTRL+G to your prompt will make your computer beep after every command you give DOS. Here's an example:

C:\>prompt $E[32m^A$E[33m$G$E[0m
ö>
ö>

This may look like a lot of gibberish, but you just have to break it down. $E[32m is an escape sequence that makes text green. ^A is CTRL+A (Our smiley face). $E[33m makes text orange, and $G makes a > appear after our smiley face. The last $E[0m resets the screen colors to the default (White on black).
MORE TO COME



CHCP

This is used to change the code page (Language, like Spanish or English) that your keyboard, screen, and printer use. I only know English and have never had to use this one. You must have the line COUNTRY=[path of country.sys file] in your config.sys file. You may also need to run NLSFUNC before you an use CHCP too. Type CHCP at your DOS prompt to see your current country code page, which is usually 437 or 850. Don't expect any more info on this one from me!















SET

Set gives you control of environment settings. Environment settings are very handy in batchfile programming. One very well known environment setting is your PATH. To use it just type:
C:\>SET string1=string2
A decent example of use is listed under PATH. These strings can be letters, numbers, words, environment variables, and command line switches but ABSOLUTELY NO SPACES!!! (Visit my batchfile page for more on environment variables and command line switches-substitution). In our example string1 is the variable we are creating from scratch. String2 can be another "from scratch" variable or a preset variable like a command line switch or an already existent environment variable.

Well, that's all I have time for now, I'll get more examples for using set when I have time. Please feel free to email me if you need an answer.


VERIFY

This is more of an option rather than a command. When 'VERIFY' is turned on it double checks every file after it writes it. This helps to prevent corruption. If a file is written to a bad sector, VERIFY should detect it and relocate the file to a good part of the disk. The only drawback is that this will slow down write actions on a disk (Or diskette). I've played around a little with this, and found very little speed degradation with having VERIFY set to ON.
Typing just VERIFY will show you whether it is turned on or off. To set it just use VERIFY ON or VERIFY OFF respectively.











LOCK

This command is only available in DOS 7 for use with Windows 95/98. It 'locks' a disk so DOS programs can have direct access to it (Without windows acting on its behalf during disk access). It will warn you that corruption can occure if you use it. Heed that warning. If you have a DOS program that must be run with the disk being 'locked' it is probably pretty old and may not understand how to act with the windows 'enhancements' on the disk. If you just have to still use that program I would recommend only using it on machine running the version of DOS it was made for. Otherwise make a backup of your system before you mess with it. To unlock a disk see UNLOCK in the next section.











UNLOCK

This unlocks a drive from direct disk access. See above, LOCK for more.


















EXIT

This exits the current command shell. In windows it will close your DOS window. (Unless you have more than one instance of command.com running). If you are at a real DOS prompt (No windows in the background) nothing will happen.
If you start another instance of command.com (By typing 'COMMAND') then you will have two shells running. Anything you do here will not affect the previous shell. Example: if you change your path statement in a secondary shell, when you exit all your environment variables will be lost and go back to what they where in the first shell's environment.


















LOADHIGH aka LH

This tries to load a program into high memory. (For the purpose of freeing up more conventional memory.) LH is the same command as LOADHIGH. In order to use it you MUST have the following:
DOS=UMB in your config.sys file
Himem.sys and Emm386.exe installed
It should especially be used with things like your mouse driver that are in memory the whole time DOS is running.


















TRUENAME

This is an undocumented command in MSDOS since version 5. The reason it's not documented is that it doesn't work. The name would suggest it tells the fully qualified name of a file (C:\dos\format.com versus just format.com). When you type just TRUENAME it will show you your current directory and drive. If you add anything after truename it will erroneously show it as an actual file or folder on your current drive.


















WILDCARDS * and ?

coming soon...

This web page is copyrighted by Nathan Heald. Reproduction is allowed as long as this message is not removed or modified in any way. Frames site  No-frames site. How to print pages off of this site. The official URL of DOS HeadQuarters is http://dos.rsvs.net



EXternal Commands

A partial list of the most common commands for DOS follows.

 append

Display or sets the search path for data files. DOS will search the specified path(s) if the file is not found in the current path. This had some creative uses, such as allowing non-CD based games to be run from the CD, with configuration/save files stored on the HD.
append;
append [d:]path[;][d:]path[...]
append [/X:on|off][/E]

 assign

The command redirects requests for disk operations on one drive to a different drive.
assign [x[:]=y[:]...
assign /STATUS
Options:
  • x The drive letter to reassign.
  • y The drive letter that x: will be assigned to.
  • /STATUS Displays the current drive assignments.
If typed without parameters then all drive letters are reset to original assignments.
The command is available in MS-DOS 5.00.

 attrib

Change or view the attributes of one or more files. It defaults to displaying the attributes of all files in the current directory.
ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H][drive:][path][filename] [/S [/D]]
Options:
  • To add an attribute attach a '+' in front of it.
  • To remove an attribute attach a '-' in front of it
  • Attributes include
    • R - Read-only
    • A - Archive
    • S - System
    • H - Hidden
    • /D - Process folders as well.
    • /S - Process matching files in the current folder and all subfolders.
Note: Everything inside a brace [option] is an optional item. Roughly equivalent to the Unix commands chattr and lsattr.

 backup and restore

Programs to back up and restore files from an external disk. These appeared in version 2, and continued to PC-DOS 5 and MS-DOS 6 (PC-DOS 7 had a deversioned check).
In DOS 6, these were replaced by commercial programs (CPBACKUP, MSBACKUP), which allowed files to be restored to different locations.

BASIC and BASICA

An implementation of the BASIC programming language for PCs.
IBM computers had BASIC 1.1 in ROM, and IBM's versions of BASIC used code in this ROM-BASIC, which allowed for extra memory in the code area. BASICA last appeared in IBMDOS 5.02, and in OS/2 (2.0 and later), the version had ROMBASIC moved into the program code.
Microsoft released GW-BASIC for machines with no ROM-BASIC. Some OEM releases had basic.com and basica.com as loaders for GW-BASIC.EXE.

 Call

Calls one batch program from another. A new batch file context is created with the specified arguments and control is passed to the statement after the label specified.
Syntax:
call [filespec][batch file parameters]
  • filespec: name and if necessary path of the new batch file
  • parameters: switches

 cd or chdir

Change current working directory. Displays the current working directory when used without a path parameter.
cd 
displays the current working directory on the current drive.
cd directory
changes the working directory on the current drive to directory.
chdir e:directory
changes the working directory on E: to directory.
cd ..
changes the working directory to the parent directory (up one directory level).
cd \
changes the working directory to the root (top level) directory of the current drive.
Equivalent to the Unix command cd (with a path parameter), or pwd (without a parameter). cd .. changes to the parent directory.

 chcp

Changes the code page used to display character glyphs in a console window.
chcp [codepage]
With a numeric parameter, this command changes the codepage setting to codepage. Without a parameter, the command displays the currently active codepage.

chkdsk

Verifies a storage volume (hard disk, partition, floppy disk, flash drive, etc) for file system integrity.
Options:
  • /F : Fixes errors on the volume (without /F , chkdsk only detects errors)
  • /P : Forces a full verification
  • /R : Searches for defective sectors and recovers legible information (applies /F)
  • /X : Unmounts the volume before processing if needed. (Note: Unmounting temporarily invalidates all pointers/handlers to the volume until process is completed)
chkdsk volume letter: [[path]filename] [/F] [/P] [/R] [/X]
Equivalent to the Unix command fsck

 choice

Allows for batch files to prompt the user to select one item from a set of single-character choices.
Introduced in MS-DOS 6;[1] DR-DOS 7.03.[2] Earlier versions of DR-DOS supported this function with the switch command (for numeric choices) or by beginning a command with a question mark.[2]
This command was formerly called ync. (yes-no-cancel).

[edit] cls

Clears the screen.
cls
Equivalent to the Unix clear.

 copy

Copies files from one location to another. The destination defaults to the current directory. If multiple source files are indicated, the destination must be a directory, or an error will result.
Syntax:
copy from [source\filename] to [destination\folder]
Files may be copied to devices. For example, copy file lpt1 sends the file to the printer on LPT1. copy file con outputs file to the screen ("console"), which can also be done using type file. Devices themselves may be copied: copy con file takes the text typed into the console and puts it into file, stopping when EOF (Ctrl+Z) is typed.
Files may be concatenated using +. For example, copy file1+file2 file_cat will concatenate the files and output them as file_cat. There are two switches to modify the command's behaviour, /a (text mode, the default) and /b (binary mode). In text mode, copy will stop when it reaches the EOF character; in binary mode, the files will be concatenated in their entirety, ignoring EOF characters.
Examples of usage:
copy /a alpha.txt + beta.txt gamma.txt
copy /b alpha.mpg + beta.mpg gamma.mpg
Equivalent Unix commands are cp (for copying) and cat (for concatenation). Device files may be copied in Unix as well, e.g. cp file /dev/tty will display a file on the screen (but cat file is more commonly used here).
Equivalent RT-11/RSX-11/OpenVMS command is copy.
Examples of usage:
copy con filename.extension
Everything typed at the console is sent to the file, until a control Z character is typed.

ctty

Defines the device to use for input and output.
Syntax:
ctty device
  • device: The terminal device to be used.
Example of usage:
ctty COM1
hello

 defrag

(in MS/PC-DOS; diskopt in DR-DOS)
Defragments a disk drive.
Options:
·         -A – Analyses the fragmentation of a disk drive
·         -F – Force defragmentation even if disk space is low
·         -V – Verbose output mode
·         -H – Defrag hidden files
Example of usage:
defrag driveletter: -a -v
No Unix equivalent.

 del or erase

Deletes one or more files.
This command is used to delete a particular or more files.
Syntax:
del filename
erase filename
Options
*.*  All files in current folder
*.* /s all files in current folder and sub folders, 
Equivalent to the Unix command rm.
Equivalent in RT-11/RSX-11/OpenVMS operating systems line is delete command which can be contracted to del.

 deltree

Deletes a directory along with all of the files and subdirectories that it contains. Normally, it will ask for confirmation of such a drastic action.
deltree [/y] directory
The /y parameter, if present, tells the deltree command to carry out without first prompting for confirmation.
The deltree command is not included in recent Microsoft Windows operating systems. Deleting a non-empty directory in those versions of Windows where the command is not included, can be achieved by using the rmdir command as in the following example:
rmdir /s [/q] directory 
In Unix, the functionality of deltree is provided by the rm command with the parameter -r (or -rf for the /y switch).

 dir

Lists the contents of a directory.
The dir command typed by itself, displays the disk's volume label and serial number; one directory or filename per line, including the filename extension, the file size in bytes, and the date and time the file was last modified; and the total number of files listed, their cumulative size, and the free space (in bytes) remaining on the disk. The command is one of the few commands that exist from the first versions of DOS.
dir [drive:][path][filename] [parameters]
Most commonly used parameters of dir include:
  • /W : Displays the listing in wide format, with as many as five filenames or directory names on each line.
  • /P : Pause at every page
  • /S : Also look in subdirectories
  • /Axx: Display files with the specified attributes only
  • /Oxx: Modifies sort order
  • /B : Uses bare format (no heading information or summary)
  • > [drive:][path]filename : To Store Result in a text file;(c:\dir > c:\fileList.txt) (this is not a parameter, it is output redirection)
Possible attributes for the A parameter are D (directories), R (read-only files), H (hidden files), A (files/directories with the archive bit on), and S (system files). The prefix - negates an attribute; attributes can be combined (e.g. /A:DA means directories with the archive bit on).
Possible sort orders are N (name), S (size), E (extension), D (date and time), A (last access date), and G (group directories first). The prefix - reverses the order.
Other less commonly used parameters of dir include:
  • /D : Display wide format but sorted by column
  • /L : Display forced into lowercase
  • /N : Display forced into long file name format instead of 8.3
  • /Q : Displays the owner of each file
  • /X : Display shows 8.3 names next to long file names
The default parameters of dir can be set using the DIRCMD environment variable.
Equivalent to the Unix command ls (the option -l is "long" list format, it works in the opposite manner to /w.)
Equivalent in RT-11/RSX-11/OpenVMS operating systems line is directory command which can be contracted to dir.

 echo

Prints its own arguments back out to the DOS equivalent of the standard output stream. Usually, this means directly to the screen, but the output of echo can be redirected like any other command. Often used in batch files to print text out to the user.
echo this is text              Outputs 'this is text'
echo.                          Outputs a blank line
Another important use of the echo command is to toggle echoing of commands on and off in batch files.
echo on               turns on echoing of commands
echo off              turns off echoing of commands
Traditionally batch files begin with the @echo off statement. This says to the interpreter that echoing of commands should be off during the whole execution of the batch file thus resulting in a "tidier" output. The @ symbol declares that this particular command (echo off) should also be executed without echo. For example the following 2 batch files are equivalent:
Batch1.bat:
@echo off
echo The files in your root directory:
dir /b /a-d c:\
Batch2.bat:
@echo The files in your root directory:
@dir /b /a-d c:\
Echo can be used to write to files directly from the console, by redirecting the output stream:
echo text > filename
Echo can also be used to append to files directly from the console, again by redirecting the output stream:
echo text >> filename
To type more than one line from the console into a file, use copy con (above).
Equivalent to the Unix command echo.

 edit

Full-screen text editor, included with MS-DOS 5 and 6, OS/2 and Windows NT to 4.0
  • Windows 95 and later, and W2k and later use Edit v 2.0
  • PC-DOS 6 and later use the DOS E Editor.
  • DR-DOS used editor up to version 7.

 edlin

DOS line-editor. It can be used with a script file, like debug, this makes it of some use even today. The absence of a console editor in MS/PC-DOS 1-4 created an after-market for third-party editors.
In DOS 5, an extra command "?" was added to give the user much needed help.
DOS 6 was the last version to contain EDLIN, for MS-DOS 6, it's on the supplemental disks, PC-DOS 6 had it in the base install. Windows NT 32-bit, and OS/2 have Edlin.

 exe2bin

Converts an executable (.exe) file into a binary file with the extension .com, which is a memory image of the program.
The size of the resident code and data sections combined in the input .exe file must be less than 64KB. The file must also have no stack segment.

 exit

Exits the current command processor. If the exit is used at the primary command, it has no effect unless in a DOS window under Microsoft Windows, in which case the window is closed and the user returns to the desktop.
exit [/B]
  /B When used within a batch script, exits the script without closing the calling DOS window
Exit also exists in Unix-shells. If an exit command is used in the primary command shell under Unix, however, it will logoff the user, similar to the control-D keystroke.

 fastopen

Main article: FASTOPEN

 fc or comp

Compares two files or sets of files and displays the differences between them.
FC [/A] [/C] [/L] [/LBn] [/N] [/T] [/W] [/nnnn] [drive1:][path1]filename1 [drive2:][path2]filename2
FC /B [drive1:][path1]filename1 [drive2:][path2]filename2
 /A     Displays only first and last lines for each set of differences.
 /B     Performs a binary comparison.
 /C     Disregards the case of letters.
 /L     Compares files as ASCII text.
 /LBn   Sets the maximum consecutive mismatches to the specified number of lines.
 /N     Displays the line numbers on an ASCII comparison.
 /T     Does not expand tabs to spaces.
 /W     Compresses white space (tabs and spaces) for comparison.
 /nnnn  Specifies the number of consecutive lines that must match after a mismatch.
 [drive1:][path1]filename1     Specifies the first file or set of files to compare.
 [drive2:][path2]filename2     Specifies the second file or set of files to compare.[citation needed]
Equivalent to the Unix commands comm, cmp and diff.

 fdisk

Manipulates hard disk partition tables. The name derives from IBM's habit of calling hard drives fixed disks. When run from the command line, it displays a menu of various partitioning operations:
 1. Create DOS partition or Logical DOS Drive
 2. Set active partition
 3. Delete partition or Logical DOS Drive
 4. Display partition information
 5. Change current fixed disk drive (only available if the computer has more than one hard drive)
FDISK /MBR installs a standard master boot record on the hard drive.
FDISK /MBR #: where # is other partition on system. Completes above command on indicated partition.
                  e.g.: "C:\FDISK /MBR D:" would install boot record on D:\ partition.
Fdisk exists under Unix with the same name, but it is an entirely different program. However they share purposes.

find

A filter to find lines in the input data stream that contain or don't contain a specified string and send these to the output data stream.
Find may also be used as a pipe.
find "keyword" < ''inputfilename'' > ''outputfilename''
Searches for a text string in a file or files.
FIND [/V] [/C] [/N] [/I] "string" [[drive:][path]filename[ ...]]
  /V        Displays all lines NOT containing the specified string.
  /C        Displays only the count of lines containing the string.
  /N        Displays line numbers with the displayed lines.
  /I        Ignores the case of characters when searching for the string.
  "string"  Specifies the text string to find.
  [drive:][path]filename Specifies a file or files to search.
If a pathname is not specified, FIND searches the text typed at the prompt
or piped from another command.
Equivalent to the Unix command grep. The Unix command find performs an entirely different function analogous to dir /s.

 format

Delete all the files on the disk and reformat it for MS-DOS
In most cases, this should only be used on floppy drives or other removable media. This command can potentially erase everything on a computer's hard disk.
/autotest and /backup are undocumented features. Both will format the drive without a confirmation prompt.
format [options] drive
FORMAT drive: [/V[:label]] [/Q] [/F:size] [/B | /S] [/C]
FORMAT drive: [/V[:label]] [/Q] [/T:tracks /N:sectors] [/B | /S] [/C]
FORMAT drive: [/V[:label]] [/Q] [/1] [/4] [/B | /S] [/C]
FORMAT drive: [/Q] [/1] [/4] [/8] [/B | /S] [/C]
 /V[:label]  Specifies the volume label.
 /Q          Performs a quick format.
 /F:size     Specifies the size of the floppy disk to format (such
             as 160, 180, 320, 360, 720, 1.2, 1.44, 2.88).
 /B          Allocates space on the formatted disk for system files.
 /S          Copies system files to the formatted disk.
 /T:tracks   Specifies the number of tracks per disk side.
 /N:sectors  Specifies the number of sectors per track.
 /1          Formats a single side of a floppy disk.
 /4          Formats a 5.25-inch 360K floppy disk in a high-density drive.
 /8          Formats eight sectors per track.
 /C          Tests clusters that are currently marked "bad."
There is also an undocumented /u parameter for "unconditional" that will write strings of zeros on every sector. This is now an official switch in Windows Vista and 7 but with the parameter /p instead.
Equivalent to the Unix command mkfs.
Equivalent in RT-11/RSX-11/OpenVMS operating systems line is format command which can not create filesystem. After formatting one should use initialize (contracted to init) command to create filesystem (Equivalent to MS-DOS command format /q or "quick format").

 help

Gives help about DOS.
MS-DOS
help 'command' would give help on a specific command. By itself, it lists the contents of DOSHELP.HLP. Help for a specific command invokes the command with the /? option. In MS-DOS 6.x this command exists as FASTHELP.
MS-DOS 6.xx help command uses QBASIC to view a quickhelp HELP.HLP file, which contains more extensive information on the commands, with some hyperlinking etc. The MS-DOS 6.22 help system is included on Windows 9x cdrom versions as well.
PC-DOS
PC-DOS 5,6 help is the same form as MS-DOS 5 help command.
PC-DOS 7.xx help uses view.exe to open OS/2 style .INF files (cmdref.inf, dosrexx.inf and doserror.inf), opening these to the appropriate pages.
DR-DOS
In DR-DOS, help is a batch file that launches DR-DOS' reference, dosbook.
Microsoft Windows
Windows NT, all versions, uses DOS 5 style help, but versions before VISTA have also a Windows help file (NTCMDS.HLP or NTCMDS.INF) in a similar style to MS-DOS 6.
FreeDOS
FreeDOS uses an HTML help system, which views HTML help files on a specified path. The path is stored in HELPPATH environment variable, if not specified, default path is \HELP on the drive which HELP is placed.
Partially equivalent to the Unix command man.

 intersvr & interlnk

(in MS-DOS; filelink in DR-DOS)
Network PCs using a null modem cable or LapLink cable. The server-side version of InterLnk, it also immobilizes the machine it's running on as it is an active app (As opposed to a TSR) which must be running for any transfer to take place. DR-DOS' filelink is executed on both the client and server.
New in PC-DOS 5.02, MS-DOS 6.0[3]
No direct Unix equivalent, though some Unices offer the ability to network computers with TCP/IP through null modem or Laplink cables using PLIP or SLIP.

 join

Attaches a drive letter to a specified directory on another drive.[3]
JOIN d: [d:\path]
JOIN [/D] (removes drive assignment)
If JOIN a: c:\floppy were executed, c:\floppy would display the contents of the a: drive. The opposite can be achieved via the subst command.

 label

Changes the label on a logical drive, such as a hard disk partition or a floppy disk.
In Unix and Unix-like systems, this differs from filesystem to filesystem. e2label can be used for ext2 partitions.

 loadfix

Loads a program above the first 64K of memory, and runs the program.
loadfix [drive:][path]filename
Included only in MS/PC-DOS. DR-DOS used memmax, which opened or closed lower, upper, and video memory access, to block the lower 64K of memory.[4]

[edit] loadhigh, lh

Main article: loadhigh
hiload in DR-DOS.

 md or mkdir

Makes a new directory. The parent of the directory specified will be created if it does not already exist.
md directory
Equivalent to the Unix command mkdir.

 mem

Displays memory usage.
mem
Options:
  • /CLASSIFY or /C - Lists the size of programs, provides a summary of memory in use and lists largest memory block available.
  • /DEBUG or /D - Displays status of programs, internal drivers, and other information.
  • /PROGRAM or /P Displays status of programs currently loaded in memory.
Equivalent to the Unix command free.

 memmaker

Starting from version 6, MS-DOS included the external program MemMaker which was used to free system memory (especially Conventional memory) by automatically reconfiguring the AUTOEXEC.BAT and CONFIG.SYS files. This was usually done by moving TSR Programs to the Upper memory. The whole process required three system restarts. Before the first restart the user was asked whether he/she wanted to enable EMS Memory or not.
The use of MemMaker was popular among gamers who wanted to enable or disable Expanded memory in order to run a game which required EMS or not. Better results could be achieved by an experienced user manually configuring the startup files to achieve greater free memory yield.
Options:
  • /BATCH Runs MemMaker in batch (unattended) mode. In batch mode, MemMaker takes the default action at all prompts.
  • /UNDO Instructs MemMaker to undo its most recent changes.
PC-DOS uses another program RamBoost to optimize memory, either the HIMEM/EMM386 or a third-party memory manager.

 mode

Configures system devices. Changes graphics modes, adjusts keyboard settings, prepares code pages, and sets up port redirection.[5]

 more

Pages through the output so that you can view more than one screen of text.
command | more
Equivalent to the Unix commands more and less.
More may also be used as a filter.
more < inputfilename

 move

Moves files or renames directories.
move filename newname
move driveletter:\olddir driveletter:\newdir
Example of usage:
move c:\old c:\new
Equivalent to the Unix command mv. DR-DOS used a separate command for renaming directories, rendir.

 msd

Main article: Microsoft Diagnostics
Provides detailed technical information about the computer's hardware and software.
msd
New in MS-DOS 6;[6] the PC-DOS version of this command is QCONFIG.[citation needed] The command appeared first in Word2, and then in Windows 3.10.
No Unix equivalent, however in GNU/Linux similar type of information may be obtained from various text files in /proc directory.

 path

Displays or sets a search path for executable files.

 pause

Suspends processing of a batch program and displays the message 'Press any key to continue. . .'. This command exists in all versions of Microsoft Windows and has the exact same function.

 pcpark

Parks the hard disk heads in order to enable safe shutdown; only used on early versions.
pcpark
No Unix equivalent.
MS-DOS 3.2 (and possibly others) used the command HHSET

 print

Adds a file in the print queue.
Options:
  • /D device  : Specifies the name of the print devices. Default value is LPT1
  • /P filename : Add files in the print queue
  • /T : Removes all files from the print queue
  • /C filename : Removes a file from the print queue
This command was introduced in MS-DOS version 2. Before that there was no built-in support for background printing files. The user would usually use the copy command to copy files to LPT1.
Equivalent to the Unix commands lp and lpr.

 rd or rmdir

Remove a directory, which by default must be empty of files for the command to succeed. The DELTREE command in DOS removes non-empty directories. In Windows NT's CMD.EXE, rd /s functions in the same way as deltree.
rd directory
Equivalent to the Unix command rmdir.

 rem

Remark statement, normally used within a batch file, or for DOS 6 and above, in CONFIG.SYS.
rem This creates a zero-byte file in some command processors.
rem > newfilename  
:: This never creates a file
:: > filename.ext
Redirecting the output from a rem command poduces a zero-byte file in some command processors.
REM is also useful in logged sessions or screen-captures.
In Unix, the # sign can be used to start a comment.

 ren

Renames a file. Unlike the move command, this command cannot be used to rename subdirectories, or rename files across drives.
ren filename newname
You can rename files in another directory by using the PATH parameter:
ren [[path\]filename] [newfilename]
This example renames c:\windows\filex.txt to c:\windows\filey.txt
ren c:\Windows\filex.txt filey.txt
Using a path in the destination newname will move the file to the new path, if this is on the same device. This renames the file to the c:\temp directory.
ren c:\windows\filex.txt \temp\filey.txt
On DOS with long filename support, care must be taken when directories have spaces in their names like "Documents and Settings". In these cases double-quotes are used to enclose them. Note it is necessary only to enclose blocks including spaces.
ren c:\"Documents and Settings"\"All Users"\Desktop\filex.txt filey.txt
ren "c:\Documents and Settings\All Users\Desktop\filex.txt" filey.txt
Wildcards in the destination are replaced by the corresponding part of the original name, so the command below will change the extention of the file from .doc to .txt, here myfile.doc becomes myfile.txt.
ren myfile.doc *.txt
Mass renames can be accomplished by the use of wildcards. For example, the following command will change the extension of all files in the current directory which currently have the extension htm to html:
ren *.htm *.html
In Unix, this functionality of a simple move is provided by the mv command, while batch renames can be done using the rename command.

 scandisk

Disk diagnostic utility. Scandisk was a replacement for the chkdsk utility, starting with later versions of MS-DOS. Its primary advantages over chkdsk is that it is more reliable and has the ability to run a surface scan which finds and marks bad clusters on the disk. It also provided mouse point-and-click TUI, allowing for interactive session to complement command-line batch run.
chkdsk had surface scan and bad cluster detection functionality included, and was used again on Windows NT based operating systems.
Equivalent to the Unix command fsck.

 set

Sets environmental variables. See Environment variable.
CMD.EXE in Windows NT 2000, 4DOS, 4OS2, 4NT, and a number of third-party solutions allow direct entry of environment variables from the command prompt, in the manner of set /p.
set /p choice=Type your text.
echo You typed: "%choice%"
From at least Windows 2000, the set command with the /A switch allows the evaluation of strings into variables, thus providing inter alia a means of performing integer arithmetic.[7]

 setver

TSR designed to return a different value to the version of DOS that is running. This allows programs that look for a specific version of DOS to run under a different DOS.
Setver appeared in version 4, and has been in every version of DOS, OS/2 and Windows NT since.

 share

Installs support for file sharing and locking capabilities.
share [/F:space] [/L:locks]
 /F:space Allocates file space (in bytes) for file-sharing information.
 /L:locks Sets the number of files that can be locked at one time.

 smartdrive

 sort

A filter to sort lines in the input data stream and send them to the output data stream.
sort < inputfilename > outputfilename
Similar to the Unix command sort. Handles files up to 64k. This sort is always case insensitive.[8]

 subst

A utility to map a subdirectory to a drive letter.[3]
subst <d:> <path>
subst <d:> /D   (Deletes the substitute drive)
If SUBST e: c:\edrive were executed, a new drive letter e: would be created, showing the contents of c:\edrive. The opposite can be achieved via the join command.

 sys

A utility to make a volume bootable. Sys rewrites the Volume Boot Code (the first sector of the partition that Sys is acting on) so that the code, when executed, will look for Io.sys. Sys also copies the core DOS system files, Io.sys, Msdos.sys, and Command.com, to the volume. Sys does NOT rewrite the Master Boot Record, contrary to widely-held belief.

 time and date

Display and set the time and date
time
date
When these commands are called from the command line or a batch file, they will display the time or date and wait for the user to type a new time or date and press RETURN. The command 'time /t' will bypass asking the user to reset the time.
The Unix command date displays both the time and date, but does not allow the normal users to change either. Users with superuser privileges may use date -s <new-date-time> to change the time and date.
The Unix command time performs a different function.

 tree

Shows the directory tree of the current directory
Syntax:
tree [options] [directory]
Options:
  • /F (Displays the names of the files in each folder.)
  • /A (Use ASCII instead of the extended characters.)
  • /? (Shows the help)

 truename

truename
        or 
truename drivename 
        or 
truename filename 
        or 
truename directory
If typed without a parameter then the current active drive pathname is displayed.
MS-DOS can find files and directories given their names, without full path information, if the search object is on a path specified by the environment variable PATH. For example, if PATH includes C:\PROGRAMS, and file MYPROG.EXE is on this directory, then if MYPROG is typed at the command prompt, the command processor will execute C:\PROGRAMS\MYPROG.EXE
the TRUENAME command will expand a name in an abbreviated form which the command processor can recognise into its full form, and display the result. It can see through SUBST and JOIN to find the actual directory. In the above example,
TRUENAME MYPROG
would display
C:\PROGRAMS\MYPROG.EXE
and for a substituted drive set up by
subst d: c:\util\test
the command
truename d:\test.exe
will display
c:\util\test\test.exe
This command also displays the UNC pathnames of mapped network or local CD drives.
This command is an undocumented DOS command. The help switch "/?" defines it as a "Reserved command name". It is available in MS-DOS 5.00.
This command is similar to the Unix which command, which, given an executable found in $PATH, would give a full path and name. The C library function realpath performs this function.
The Microsoft Windows command processors do not support this command.

 type

Display a file. The more command is frequently used in conjunction with this command, e.g. type long-text-file | more.
type filename
Equivalent to the Unix command cat.

 undelete

Restores file previously deleted with del. By default all recoverable files in the working directory are restored. The options are used to change this behavior. if the MS-DOS mirror TSR program is used, then deletion tracking files are created and can be used by undelete.
Syntax:
undelete [filespec] [/list|/all][/dos|/dt]
Options:
  • /list : lists the files that can be undeleted.
  • /all : Recovers all deleted files without prompting. Uses a number sign for missing first character.
  • /dos : Recover only MS-DOS aware files, ignore deletion tracking file.
  • /dt : Recover only deletion tracking file aware files.
In Unix and Unix-like systems this differs from filesystem to filesystem. People who use the ext2 filesystem can try the command e2undel.

 Ver

An internal DOS command, that reports the DOS version presently running, and since MS-DOS 5, whether DOS is loaded high. The corresponding command to report the Windows version is winver.
Options: DOS 5 and later
  • /r  : revision level, also shows whether DOS is loaded high
  • /?  : shows command line help.
Value returned:
  • MS-DOS up to 6.22, typically derive the DOS version from the DOS kernel. This may be different from the string it prints when it starts.
  • PC-DOS typically derive the version from an internal string in command.com (so PC-DOS 6.1 command.com reports the version as 6.10, although the kernel version is 6.00.)
  • DR-DOS reports whatever value the environment variable OSVER reports.
  • OS/2 command.com reports an internal string, with the OS/2 version. The underlying kernel here is 5.00, but modified to report x0.xx (where x.xx is the OS/2 version).
  • Windows 9x command.com report a string from inside command.com. The build version (e.g. 2222), is also derived from there.
  • Windows NT command.com reports either the 32-bit processor string (4nt, cmd), or under some loads, MS-DOS 5.00.500, (for all builds). The underlying kernel reports 5.00 or 5.50 depending on the interrupt. MS-DOS 5.00 commands run unmodified on NT.
  • The Winver command usually displays a Windows dialog showing the version, with some information derived from the shell. In windows before Windows for workgroups 3.11, running winver from DOS reported an embedded string in winver.exe.

 verify

Enables or disables the feature to determine if files have been correctly written to disk.
If no parameter is provided, the command will display the current setting.[9]
verify [on|off]

xcopy

Copy entire directory trees.
Xcopy is a version of the copy command that can move files and directories from one location to another.
xcopy directory [destination-directory]
Equivalent to the Unix command cp when used with -r parameter.