Jump to content

List of DOS commands: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎top: I removed the howto content, so am removing the associated tag
(48 intermediate revisions by the same user not shown)
Line 3: Line 3:
<!-- For administrator use only: {{Old AfD multi|page=List of DOS commands|date=3 October 2014|result='''keep'''}} -->
<!-- For administrator use only: {{Old AfD multi|page=List of DOS commands|date=3 October 2014|result='''keep'''}} -->
<!-- End of AfD message, feel free to edit beyond this point -->
<!-- End of AfD message, feel free to edit beyond this point -->
{{Manual|date=September 2014}}
{{Technical|date=September 2014}}
{{Technical|date=September 2014}}
This article presents a '''list of commands''' used by [[x86]] [[DOS]] [[operating system]]s. [[List of DOS operating systems#Other operating systems|Other DOS operating systems]] are not part of the scope of this list.
This article presents a '''list of commands''' used by [[x86]] [[DOS]] [[operating system]]s. [[List of DOS operating systems#Other operating systems|Other DOS operating systems]] are not part of the scope of this list.
Line 29: Line 28:


Displays 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 has some creative uses, such as allowing non-CD based games to be run from the CD, using configuration/save files stored on the hard drive.
Displays 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 has some creative uses, such as allowing non-CD based games to be run from the CD, using configuration/save files stored on the hard drive.

'''append;'''
append [d:]path[;][d:]path[...]
append [/X:on|off][/E]


=== ASSIGN ===
=== ASSIGN ===
{{see|Drive letter assignment}}
{{see|Drive letter assignment}}
The command redirects requests for disk operations on one drive to a different drive.
The command redirects requests for disk operations on one drive to a different drive. It can also display drive assignments or reset all drive letters to their original assignments. The command is available in MS-DOS 5.00.

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 ===
=== ATTRIB ===
{{main|ATTRIB}}
[[Attrib]] changes or views the attributes of one or more files. It defaults to displaying the attributes of all files in the current directory.
[[Attrib]] changes or views the attributes of one or more files. It defaults to displaying the attributes of all files in the current directory. The file attributes available include read-only, archive, system, and hidden attributes. The command has the capability to process whole folders and subfolders of files. the command is roughly equivalent to the [[Unix]] commands <code>[[chattr]]</code> and <code>[[lsattr]]</code>.

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.

Everything inside a brace [option] is an optional item.
Roughly equivalent to the [[Unix]] commands <code>[[chattr]]</code> and <code>[[lsattr]]</code>.


=== BACKUP and RESTORE ===
=== 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).
These are commands to [[Backup|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.

In DOS 6, these were replaced by commercial programs (CPBACKUP, MSBACKUP), which allowed files to be restored to different locations.


=== BASIC and BASICA ===
=== BASIC and BASICA ===
Line 83: Line 50:


=== CALL ===
=== 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.
Given a batch filename and run parameters, the '''CALL''' command invokes one batch program from another batch program. 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

=== [[CHDIR|CD and CHDIR]] ===
Change current working [[directory (file systems)|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 <code>E:</code> 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.


=== CD and CHDIR ===
Equivalent to the [[Unix]] command <code>[[chdir|cd]]</code> (with a path parameter), or <code>[[pwd]]</code> (without a parameter). <code>cd</code>&nbsp;<code>..</code> changes to the parent directory.
{{main|CHDIR}}
The '''CHDIR''' (or the alternative name '''CD''') command either displays or changes the current working [[directory (file systems)|directory]]. The analogous commands in [[Unix]] are <code>[[chdir|cd]]</code> (change working directory), or <code>[[pwd]]</code> (display working directory).


=== CHCP ===
=== CHCP ===


Changes the [[Windows code page|code page]] used to display [[glyph|character glyphs]] in a [[Win32 console|console window]].
The command either displays or changes the active [[Windows code page|code page]] used to display [[glyph|character glyphs]] in a [[Win32 console|console window]]. The codepage ''1252'' lets one use the Windows GUI charset in the command line, while codepage ''65001'' corresponds to the Unicode [[utf-8]] encoding.


=== CHKDSK ===
chcp [''codepage'']
{{main|CHKDSK}}
'''CHKDSK''' verifies a storage [[volume]] (for example, a [[hard disk]], [[Disk partitioning|disk partition]] or [[floppy disk]]) for file system integrity. The command has the ability to fix errors on a volume and recover information from defective [[disk sector]]s of a volume. It is analogous to the Unix command <code>[[fsck]]</code>.


=== CHOICE ===
With a numeric parameter, this command changes the codepage setting to ''codepage''. Without a parameter, the command displays the currently active codepage. The codepage 1252 lets use the GUI charset in the command line, while 65001 is utf-8.
{{main|choice (command)}}
The '''CHOICE''' command is used in batch files to prompt the user to select one item from a set of single-character ''choices''. Choice was introduced as an external command with MS-DOS 6.0;<ref>{{cite web|url=http://www.computerhope.com/choicehl.htm|title=MS-DOS choice command help|publisher=|accessdate=10 September 2014}}</ref> [[Novell DOS]] 7<ref name="drdos7ch7">{{cite web|url=http://www.drdos.com/dosdoc/usergeng/07ugch7.htm|title=Caldera DR-DOS 7.03 User Guide|publisher=|accessdate=10 September 2014}}</ref> and PC DOS 7.0. Earlier versions of [[DR DOS]] supported this function with the built-in '''switch''' command (for numeric choices) or by beginning a command with a question mark.<ref name="drdos7ch7" /> This command was formerly called ync (yes-no-cancel).{{citation needed|date=September 2011}}


=== [[CHKDSK]] ===
=== CLS ===
{{main|cls (computing)}}
Verifies a storage volume (hard disk, partition, [[floppy disk]], flash drive, etc) for file system integrity.
The '''CLS''' or '''CLRSCR''' command clears the terminal screen. It is analogous to the Unix <code>[[Clear (Unix)|clear]]</code> command.


=== COPY ===
Options:
{{main|COPY (command)}}
* /F : Fixes errors on the volume (without /F, chkdsk only detects errors)
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. COPY has the ability to concatenate files. The command can copy in text mode or binary mode; n text mode, <code>copy</code> will stop when it reaches the [[end-of-file|EOF]] character; in binary mode, the files will be concatenated in their entirety, ignoring EOF characters. The analogous Unix commands are <code>[[cp (Unix)|cp]]</code> (for copying) and <code>[[cat (Unix)|cat]]</code> (for concatenation). The analogous [[RT-11]], [[RSX-11]], and [[OpenVMS]] command is <code>copy</code>.
* /P : Forces a full verification
* /R : Searches for defective sectors and recovers legible information (applies /F)
* /X : [[Mount (computing)|Unmounts]] the volume before processing if needed. (Note: Unmounting temporarily invalidates all pointers/handlers to the volume until process is completed)


Files may be copied to devices. For example, <code>copy ''file'' con</code> outputs ''file'' to the screen console. Devices themselves may be copied to a destination file, for example, <code>copy con ''file''</code> takes the text typed into the console and puts it into ''file'', stopping when [[end-of-file|EOF]] (Ctrl+Z) is typed.
chkdsk ''volume letter:'' path filename [/F] [/P] [/R] [/X]

Equivalent to the Unix command <code>[[fsck]]</code>

=== [[choice (command)|CHOICE]] ===
Allows for batch files to prompt the user to select one item from a set of single-character '''choices'''.

[[Choice (command)|Choice]] was introduced as an external command with MS-DOS 6.0;<ref>{{cite web|url=http://www.computerhope.com/choicehl.htm|title=MS-DOS choice command help|publisher=|accessdate=10 September 2014}}</ref> [[Novell DOS]] 7<ref name="drdos7ch7">{{cite web|url=http://www.drdos.com/dosdoc/usergeng/07ugch7.htm|title=Caldera DR-DOS 7.03 User Guide|publisher=|accessdate=10 September 2014}}</ref> and PC DOS 7.0. Earlier versions of [[DR DOS]] supported this function with the built-in '''switch''' command (for numeric choices) or by beginning a command with a question mark.<ref name="drdos7ch7" />

This command was formerly called ync (yes-no-cancel).{{citation needed|date=September 2011}}

=== [[cls (computing)|CLS]] ===
Clears the screen.

clrscr

Equivalent to the Unix <code>[[Clear (Unix)|clear]]</code>.

=== [[COPY (command)|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 [source\filename] [destination\folder]

Files may be copied to devices. For example, <code>copy ''file'' lpt1</code> sends the ''file'' to the printer on [[LPT1]]. <code>copy ''file'' con</code> outputs ''file'' to the screen ("console"), which can also be done using <code>[[#type|type]] ''file''</code>. Devices themselves may be copied: <code>copy con ''file''</code> takes the text typed into the console and puts it into ''file'', stopping when [[end-of-file|EOF]] (Ctrl+Z) is typed.

Files may be concatenated using <code>+</code>. For example, <code>copy ''file1''+''file2'' ''file_cat''</code> will concatenate the files and output them as ''file_cat''. There are two switches to modify the command's behaviour, <code>/a</code> (text mode, the default) and <code>/b</code> (binary mode). In text mode, <code>copy</code> will stop when it reaches the [[end-of-file|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 <code>[[cp (Unix)|cp]]</code> (for copying) and <code>[[cat (Unix)|cat]]</code> (for concatenation). Device files may be copied in Unix as well, e.g. <code>cp ''file'' /dev/tty</code> will display a file on the screen (but <code>cat ''file''</code> is more commonly used here).

Equivalent [[RT-11]], [[RSX-11]], and [[OpenVMS]] command is <code>copy</code>.

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 ===
=== CTTY ===
Defines the device to use for input and output.
Defines the terminal device (for example, COM1) to use for input and output.

Syntax:
ctty ''device''

*'''device''': The terminal device to be used.

Example of usage:
ctty COM1
hello


=== DEFRAG ===
=== DEFRAG ===
The command has the ability to analyze the file fragmentation on a disk drive or to [[Defragmentation|defragment]] a drive. The command is called '''DEFRAG''' in MS-DOS/PC DOS and <tt>diskopt</tt> in DR-DOS. The is no Unix equivalent.
In MS-DOS/PC DOS; <tt>diskopt</tt> in DR-DOS.

[[Defragmentation|Defragments]] a disk drive.

Options:
* <code>-A</code> – Analyses the fragmentation of a disk drive
* <code>-F</code> – Force defragmentation even if disk space is low
* <code>-V</code> – Verbose output mode
* <code>-H</code> – Defrag hidden files

Example of usage:
defrag ''driveletter'': -a -v

No Unix equivalent.

=== [[DEL (command)|DEL and 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 <code>[[Rm (Unix)|rm]]</code>.

Equivalent in RT-11/RSX-11/OpenVMS operating systems line is <code>delete</code> command which can be contracted to <code>del</code>.

=== [[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 <code>deltree</code> command to carry out without first prompting for confirmation.

The <code>deltree</code> command is included in certain versions of [[Microsoft Windows]] and [[MS-DOS|Microsoft DOS]] [[Operating system|Operating Systems]]. It is specifically available only in versions of [[MS-DOS]] 6.0 and higher, and in [[Windows 9x|Microsoft Windows 9x]].

In [[Windows NT|Microsoft Windows NT]], the functionality provided exists but is handled by the command [[List_of_MS-DOS_commands#rd_or_rmdir|"rd" or "rmdir"]] which has slightly different syntax.

This command has been deprecated for windows7

However this behavior can also be achieved on almost any version [[Microsoft Windows]] or [[MS-DOS|Microsoft DOS]] by using the [[List_of_MS-DOS_commands#del_or_erase|"del" or "erase"]] command as in the following example:

del /s /f [/q] ''directory'' && rd /s [/q] ''directory''

In Unix, the functionality of <code>deltree</code> is provided by the <code>[[Rm (Unix)|rm]]</code> command with the parameter <code>-r</code> (or <code>-rf</code> for the <code>/y</code> switch).

=== [[DIR (command)|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.

<code>dir [drive:][path][filename] [parameters]</code>

Most commonly used parameters of ''dir'' include:

*<code> /W </code>: Displays the listing in wide format, with as many as five filenames or directory names on each line.
*<code> /P </code>: Pause at every page
*<code> /S </code>: Also look in subdirectories
*<code> /Axx</code>: Display files with the specified attributes only
*<code> /Oxx</code>: Modifies sort order
*<code> /B </code>: Uses bare format (no heading information or summary)
*<code> '''> [drive:][path]filename''' </code>: 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 <code>A</code> parameter are <code>D</code> (directories), <code>R</code> (read-only files), <code>H</code> (hidden files), <code>A</code> (files/directories with the archive bit on), and <code>S</code> (system files). The prefix <code>-</code> negates an attribute; attributes can be combined (e.g. <code>/A:DA</code> means directories with the archive bit on).

Possible sort orders are <code>N</code> (name), <code>S</code> (size), <code>E</code> (extension), <code>D</code> (date and time), <code>A</code> (last access date), and <code>G</code> (group directories first). The prefix <code>-</code> reverses the order.

Other less commonly used parameters of ''dir'' include:
*<code> /D </code>: Display wide format but sorted by column
*<code> /L </code>: Display forced into lowercase
*<code> /N </code>: Display forced into long file name format instead of 8.3
*<code> /Q </code>: Displays the owner of each file
*<code> /X </code>: Display shows 8.3 names next to long file names


=== DEL and ERASE ===
The default parameters of ''dir'' can be set using the DIRCMD environment variable.
{{main|DEL (command)}}
'''DEL''' (or the alternative form '''ERASE''') is used to delete one or more files. The analogous Unix command is <code>[[Rm (Unix)|rm]]</code> and the analogous RT-11/RSX-11/OpenVMS command is <code>delete</code> or <code>del</code>.


=== DELTREE ===
Equivalent to the Unix command <code>[[ls]]</code> (the option <code>-l</code> is "long" list format, it works in the opposite manner to <code>/w</code>.)
{{main|DELTREE}}
Deletes a directory along with all of the files and subdirectories that it contains. Normally, it will ask for confirmation of the potentially dangerous action.


The <code>deltree</code> command is included in certain versions of [[Microsoft Windows]] and [[MS-DOS|Microsoft DOS]] [[Operating system|Operating Systems]]. It is specifically available only in versions of [[MS-DOS]] 6.0 and higher, and in [[Windows 9x|Microsoft Windows 9x]]. In [[Windows NT|Microsoft Windows NT]], the functionality provided exists but is handled by the command ''rd'' or ''rmdir'' which has slightly different syntax. This command has been deprecated for windows7. In Unix, the functionality of <code>deltree</code> is provided by the <code>[[Rm (Unix)|rm]]</code> command.
Equivalent in RT-11/RSX-11/OpenVMS operating systems line is <code>directory</code> command which can be contracted to <code>dir</code>.


=== [[echo (command)|ECHO]] ===
=== DIR ===
{{main|DIR (command)}}
Prints its own arguments back out to the DOS equivalent of the [[Standard streams|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 file]]s to print text out to the user.
The '''DIR''' command displays the contents of a directory. The contents comprise 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. The command can display files in subdirectories. The resulting directory listing can be sorted by various criteria and filenames can be displayed in a chosen format. The analogous Unix command is <code>[[ls]]</code> and the analogous RT-11/RSX-11/OpenVMS command is <code>directory</code> or <code>dir</code>.
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 <code>@echo off</code> 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 <code>@</code> symbol declares that this particular command (echo off) should also be executed without echo. For example the following 2 batch files are equivalent:


=== ECHO ===
Batch1.bat:
{{main|echo (command)}}
<source lang="dos">
The '''ECHO''' command prints its own arguments back out to the DOS equivalent of the [[Standard streams|standard output stream]]. Usually, this means directly to the screen, but the output of ''echo'' can be redirected, like any other command, to files or devices. Often used in [[batch file]]s to print text out to the user.
@echo off
echo The files in your root directory:
dir /b /a-d c:\
</source>


Another important use of the echo command is to toggle echoing of commands on and off in batch files. Traditionally batch files begin with the <code>@echo off</code> 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 <code>@</code> symbol declares that this particular command (echo off) should also be executed without echo.)
Batch2.bat:
<source lang="dos">
@echo The files in your root directory:
@dir /b /a-d c:\
</source>


The analogous command in Unix is <code>echo</code>.
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''
Echo can also be used to redirecting the output stream to a device:
echo ''This line will print on a line printer.'' >> ''LPT1:''
To type more than one line from the console into a file, use <code>copy con</code> (above).
Equivalent to the Unix command <code>echo</code>.


=== [[MS-DOS Editor|EDIT]] ===
=== EDIT ===
{{main|MS-DOS Editor}}
Full-screen text editor, included with MS-DOS 5 and 6, OS/2 and Windows NT to 4.0
'''EDIT''' is a full-screen [[text editor]], included with MS-DOS 5 and 6, OS/2 and Windows NT to 4.0 The corresponding program in Windows 95 and later, and W2k and later is Edit v2.0. PC DOS 6 and later use the DOS '''E''' Editor and DR-DOS used '''editor''' up to version 7.
* Windows 95 and later, and W2k and later use Edit v2.0
* PC DOS 6 and later use the DOS '''E''' Editor.
* DR-DOS used '''editor''' up to version 7.


=== [[EDLIN]] ===
=== [[EDLIN]] ===
Line 316: Line 122:
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.
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 (command)|EXIT]] ===
=== EXIT ===
{{main|exit (command)}}
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.
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 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.

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 ===
=== FASTOPEN ===
Line 332: Line 134:
Equivalent to the Unix commands <code>[[comm]], [[cmp (Unix)|cmp]] and [[diff]]</code>.
Equivalent to the Unix commands <code>[[comm]], [[cmp (Unix)|cmp]] and [[diff]]</code>.


=== [[FDISK]] ===
=== FDISK ===
{{main|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:
The '''FDISK''' command anipulates hard disk partition tables. The name derives from IBM's habit of calling hard drives ''fixed disks''. FDISK has the ability to display information about, create, and delete DOS partitions or logical DOS drive. It can also install a standard [[master boot record]] on the hard drive.

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 (command)|FIND]] ===
A [[Filter (software)|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 [[Pipeline (software)|pipe]].

Equivalent to the Unix command <code>[[grep]]</code>. The Unix command <code>[[find]]</code> performs an entirely different function analogous to <code>[[dir (command)|dir]] /s</code>.

=== [[for loop|FOR]] ===
The FOR loop can be used to parse a file or (with /F) the output of a command.
<pre>
FOR [switches] %variable IN (set) DO command [parameters for command]

[switches] /D
Use for finding directory names if (set) contains wildcards and is a dir command
/R [[drive:]path]
Use to recursively search directory tree
/L
Changes set to (start,step,end) and is used for number sequences
/F ["options"]
["options"]
eol=c Set the end of line character
skip=n Number of lines to skip before processing
delims=xxx set the delimiters to use (default are space and tab)
tokens=x,y,m-n Can be used to return single,multiple or range of tokens
With this switch (set) can be a list of files,"quoted string",command.
If a list of files is used each file will be parsed using the ["options"]

%variable Use a single letter preceded by %%
(set) List of data to parse
command command to execute

</pre>
Example:
<pre>
for /f "Skip=4 tokens=1" %%i in ('NET FILES') do if not "%%i" EQU "The" NET FILE %%i /CLOSE
Will close open network shared files
</pre>

=== [[FORMAT (command)|FORMAT]] ===
Deletes the [[File Allocation Table|FAT]] entries and the [[root directory]] of the drive/partition, and reformats 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 feature]]s. Both will format the drive without a confirmation prompt.


=== FIND ===
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.
{{main|Find (command)}}
The '''FIND''' command is a [[Filter (software)|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. It may also be used as a [[Pipeline (software)|pipe]]. The analogous command in Unix is <code>[[grep]]</code>; the Unix command <code>[[find]]</code> performs an entirely different function analogous to <code>[[dir (command)|dir]] /s</code>.


=== FOR ===
Equivalent to the Unix command <code>[[mkfs]]</code>.
{{main|For loop}}
The FOR loop can be used to [[parse]] a file or the output of a command.


=== FORMAT ===
Equivalent in RT-11/RSX-11/OpenVMS operating systems line is <code>format</code> command which can not create filesystem. After formatting one should use <code>initialize</code> (contracted to <code>init</code>) command to create filesystem (Equivalent to MS-DOS command <code>format /q</code> or "quick format").
{{main|FORMAT (command)}}
Deletes the [[File Allocation Table|FAT]] entries and the [[root directory]] of the drive/partition, and reformats 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. The analogous command in Unix is <code>[[mkfs]]</code>, and in RT-11/RSX-11/OpenVMS it is the <code>format</code> command.


=== [[HELP (command)|HELP]] ===
=== HELP ===
{{main|HELP (command)}}
Gives help about DOS.
Gives help about DOS commands.
;MS-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.
:help 'command' would give help on a specific command. By itself, it lists the contents of DOSHELP.HLP.
: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.
: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
Line 425: Line 177:


=== JOIN ===
=== JOIN ===
Attaches a drive letter to a specified directory on another drive.<ref name="murdock">[http://www.easydos.com/dosindex.html EasyDOS Command Index<!-- Bot generated title -->]</ref>
The '''JOIN''' command attaches a drive letter to a specified directory on another drive.<ref name="murdock">[http://www.easydos.com/dosindex.html EasyDOS Command Index<!-- Bot generated title -->]</ref>

JOIN d: [d:\path]
JOIN [/D] (removes drive assignment)

If <tt>JOIN a: c:\floppy</tt> were executed, c:\floppy would display the contents of the a: drive. The opposite can be achieved via the [[#subst|subst]] command.


=== [[label (command)|LABEL]] ===
=== [[label (command)|LABEL]] ===
Line 437: Line 184:
In Unix and Unix-like systems, this differs from filesystem to filesystem. <tt>e2label</tt> can be used for ext2 partitions.
In Unix and Unix-like systems, this differs from filesystem to filesystem. <tt>e2label</tt> can be used for ext2 partitions.


=== [[loadfix|LOADFIX]] ===
=== LOADFIX ===
Loads a program above the first 64K of memory, and runs the program.
Loads a program above the first 64K of memory, and runs the program. The command is included only in MS-DOS/PC DOS. DR-DOS used <tt>memmax</tt>, which opened or closed lower, upper, and video memory access, to block the lower 64K of memory.<ref>{{cite book|title=DR DOS 6.0 User Guide|publisher=Digital Research|year=1991}}</ref>

<code>loadfix [drive:][path]filename</code>

Included only in MS-DOS/PC DOS. DR-DOS used <tt>memmax</tt>, which opened or closed lower, upper, and video memory access, to block the lower 64K of memory.<ref>{{cite book|title=DR DOS 6.0 User Guide|publisher=Digital Research|year=1991}}</ref>


=== LOADHIGH and LH ===
=== LOADHIGH and LH ===
Line 448: Line 191:
'''hiload''' in DR-DOS.
'''hiload''' in DR-DOS.


=== [[MKDIR|MD or MKDIR]] ===
=== MD or MKDIR ===
{{main|MKDIR}}
Makes a new [[directory (file systems)|directory]]. The parent of the directory specified will be created if it does not already exist.
Makes a new [[directory (file systems)|directory]]. The parent of the directory specified will be created if it does not already exist. Equivalent to the Unix command <code>mkdir</code>.

md ''directory''

Equivalent to the Unix command <code>mkdir</code>.


===MEM===
===MEM===
Displays memory usage. It is capable of displaying program size and status, memory in use, and internal drivers. Equivalent to the Unix command <code>free</code>.
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 <code>free</code>.


===MEMMAKER===
===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 program|TSR Programs]] to the [[Upper Memory Area|Upper memory]]. The whole process required three system restarts. Before the first restart the user was asked whether he/she wanted to enable [[Expanded memory|EMS Memory]].
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 program|TSR Programs]] to the [[Upper Memory Area|Upper memory]]. The whole process required three system restarts. Before the first restart the user was asked whether he/she wanted to enable [[Expanded memory|EMS Memory]]. The use of '''MemMaker''' was popular among gamers who wanted to enable or disable [[Expanded memory]] in order to run a game. PC DOS uses another program '''RamBoost''' to optimize memory, either the [[HIMEM]]/[[EMM386]] or a third-party memory manager.

The use of '''MemMaker''' was popular among gamers who wanted to enable or disable [[Expanded memory]] in order to run a game.

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===
===MODE===
Configures system devices. Changes graphics modes, adjusts keyboard settings, prepares [[code page]]s, and sets up port redirection.<ref>{{cite web|url=http://www.computerhope.com/modehlp.htm|title=MS-DOS mode command help|publisher=|accessdate=10 September 2014}}</ref>
Configures system devices. Changes graphics modes, adjusts keyboard settings, prepares [[code page]]s, and sets up port redirection.<ref>{{cite web|url=http://www.computerhope.com/modehlp.htm|title=MS-DOS mode command help|publisher=|accessdate=10 September 2014}}</ref>


=== [[more (command)|MORE]] ===
=== MORE ===
{{main|more (command)}}
Pages through the output so that you can view more than one screen of text.
The '''MORE''' command [[Pagination|paginates]] text, so that one can view files containing more than one screen of text. ''More'' may also be used as a [[Filter (software)|filter]]. Equivalent to the Unix commands <code>[[More (command)|more]]</code> and <code>[[less (Unix)|less]]</code>.


=== MOVE ===
''command'' | more
{{main|MOVE (command)}}
Equivalent to the Unix commands <code>[[More (command)|more]]</code> and <code>[[less (Unix)|less]]</code>.
Moves files or renames directories. Equivalent to the Unix command <code>[[mv]]</code>. DR-DOS used a separate command for renaming directories, <code>rendir</code>.

''More'' may also be used as a [[Filter (software)|filter]].

more < ''inputfilename''

=== [[MOVE (command)|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 <code>[[mv]]</code>. DR-DOS used a separate command for renaming directories, <tt>rendir</tt>.


=== MSD ===
=== MSD ===
{{main|Microsoft Diagnostics}}
{{main|Microsoft Diagnostics}}
The '''MSD''' command provides detailed technical information about the computer's hardware and software. MSD was new in MS-DOS 6;<ref>{{cite web|url=http://www.computerhope.com/msdhlp.htm|title=MS-DOS msd command help|publisher=|accessdate=10 September 2014}}</ref> the PC DOS version of this command is QCONFIG.{{Citation needed|date=December 2008}} 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 <tt>/proc</tt> directory.
Provides detailed technical information about the computer's hardware and software.

msd

New in MS-DOS 6;<ref>{{cite web|url=http://www.computerhope.com/msdhlp.htm|title=MS-DOS msd command help|publisher=|accessdate=10 September 2014}}</ref> the PC DOS version of this command is QCONFIG.{{Citation needed|date=December 2008}} 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 <tt>/proc</tt> directory.


=== PATH ===
=== PATH ===
Line 518: Line 222:
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, except in windows7. In windows7 it just pauses it.
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, except in windows7. In windows7 it just pauses it.


=== [[PRINT (command)|PRINT]] ===
=== PRINT ===
{{main|PRINT (command)}}
Adds a file in the print queue.
The '''PRINT''' command adds or removes files in 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 <code>[[lp (Unix)|lp]]</code> and <code>lpr</code>.


=== RD or RMDIR ===
Options:
{{main|RMDIR}}
* /D device : Specifies the name of the print devices. Default value is LPT1
Remove a directory (delete a directory); by default the directories must be empty of files for the command to succeed. The [[List_of_MS-DOS_commands#deltree|deltree]] command in some versions of MS-DOS and all versions of [[Windows 9x]] removes non-empty directories.
* /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 <code>[[lp (Unix)|lp]]</code> and <code>lpr</code>.

=== [[RMDIR|RD or RMDIR]] ===
Remove a directory (delete a directory), by default the directories must be empty of files for the command to succeed. The [[List_of_MS-DOS_commands#deltree|deltree]] command in some versions of MS-DOS and all versions of [[Windows 9x]] removes non-empty directories.

rmdir /s

The [/s] parameter enables <code>rmdir</code> to function in the same way as <code>deltree</code>, deleting all sub folders and Files, and by default requiring confirmation.

rmdir /s /q

The [/q] parameter, if present, tells the <code>rmdir</code> command to carry out the deletion without first prompting for confirmation. This is the same as running <code>deltree [/y]</code>.


=== REM ===
=== REM ===
Remark command, normally used within a [[batch file]], and for DR-DOS, PC/MS-DOS 6 and above, in CONFIG.SYS.
Remark command, normally used within a [[batch file]], and for DR-DOS, PC/MS-DOS 6 and above, in CONFIG.SYS. This command is processed by the command processor. Thus, its output can be redirected to create a zero-byte file. REM is useful in logged sessions or screen-captures. One might add comments by way of labels, usually starting with double-colon ''::''. These are not processed by the command processor. In Unix, the <code>#</code> sign can be used to start a comment.


=== REN ===
This command is processed by the command processor. Thus, its output can be redirected to create a zero-byte file.
{{main|ren (command)}}

The '''REN''' command renames a file. Unlike the <code>move</code> command, this command cannot be used to rename subdirectories, or rename files across drives. Mass renames can be accomplished by the use of wildcards. In Unix, this functionality of a simple move is provided by the <code>[[mv]]</code> command, while batch renames can be done using the <code>rename</code> command.
rem This creates a zero-byte file in some command processors.
rem > ''newfilename''
:: This never creates a file
:: > ''filename.ext''

REM is also useful in logged sessions or screen-captures.

One might add comments by way of labels, usually starting with double-colon ''::''. These are not processed by the command processor.

In Unix, the <code>#</code> sign can be used to start a comment.

=== [[ren (command)|REN]] ===
Renames a file. Unlike the <code>move</code> 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 extension 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 <code>[[mv]]</code> command, while batch renames can be done using the <code>rename</code> command.


=== [[SCANDISK]] ===
=== [[SCANDISK]] ===
Line 597: Line 244:


=== SET ===
=== SET ===
Sets [[environmental variable]]s. 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. From at least Windows 2000, the <code>set</code> command allows for the evaluation of strings into variables, thus providing ''inter alia'' a means of performing integer arithmetic.<ref>
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 <code>set /p</code>.

set /p choice=Type your text.
echo You typed: "%choice%"

From at least Windows 2000, the <code>set</code> command with the <code>/A</code> switch allows the evaluation of strings into variables, thus providing ''inter alia'' a means of performing integer arithmetic.<ref>
{{cite book
{{cite book
| last = Karp
| last = Karp
Line 633: Line 273:


=== SORT ===
=== SORT ===
A [[Filter (software)|filter]] to sort lines in the input data stream and send them to the output data stream.
A [[Filter (software)|filter]] to sort lines in the input data stream and send them to the output data stream. Similar to the Unix command <code>[[Sort (Unix)|sort]]</code>. Handles files up to 64k. This sort is always case insensitive.<ref>{{cite web|url=http://technet.microsoft.com/en-us/library/cc722869.aspx|title=Microsoft on "sort"|publisher=|accessdate=10 September 2014}}</ref>


=== SUBST ===
sort < ''inputfilename'' > ''outputfilename''
{{main|SUBST}}

Similar to the Unix command <code>[[Sort (Unix)|sort]]</code>. Handles files up to 64k. This sort is always case insensitive.<ref>{{cite web|url=http://technet.microsoft.com/en-us/library/cc722869.aspx|title=Microsoft on "sort"|publisher=|accessdate=10 September 2014}}</ref>

=== [[SUBST]] ===
A utility to map a subdirectory to a drive letter.<ref name="murdock" />
A utility to map a subdirectory to a drive letter.<ref name="murdock" />

subst <''d:''> <''path''>
subst <''d:''> /D (Deletes the substitute drive)

If <tt>SUBST e: c:\edrive</tt> were executed, a new drive letter e: would be created, showing the contents of c:\edrive. The opposite can be achieved via the [[#join|join]] command.


=== [[SYS.COM|SYS]] ===
=== [[SYS.COM|SYS]] ===
Line 651: Line 283:


=== [[TIME (command)|TIME]] and [[DATE (command)|DATE]] ===
=== [[TIME (command)|TIME]] and [[DATE (command)|DATE]] ===
Display and set the time and 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 Unix command <code>[[Date (Unix)|date]]</code> displays both the time and date, but does not allow the normal users to change either. Users with [[superuser]] privileges may change the time and date. The Unix command <code>[[Time (Unix)|time]]</code> performs a different function.
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 commands <code>time /t</code> and <code>date /t</code> will display output without waiting for input.

The Unix command <code>[[Date (Unix)|date]]</code> displays both the time and date, but does not allow the normal users to change either. Users with superuser privileges may use <code>date -s <new-date-time></code> to change the time and date.

The Unix command <code>[[Time (Unix)|time]]</code> performs a different function.


=== TREE ===
=== TREE ===
Shows the directory tree of the current directory
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 ===
The '''TRUENAME''' command produces the full path name of drives, files, or directories.
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 <tt>PATH</tt>. For example, if <tt>PATH</tt> includes <tt>C:\PROGRAMS</tt>, and file <tt>MYPROG.EXE</tt> is on this directory, then if <code>MYPROG</code> is typed at the command prompt, the command processor will execute <code>C:\PROGRAMS\MYPROG.EXE</code>
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 <tt>PATH</tt>. For example, if <tt>PATH</tt> includes <tt>C:\PROGRAMS</tt>, and file <tt>MYPROG.EXE</tt> is on this directory, then if <code>MYPROG</code> is typed at the command prompt, the command processor will execute <code>C:\PROGRAMS\MYPROG.EXE</code>


the <code>TRUENAME</code> 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 <tt>SUBST</tt> and <tt>JOIN</tt> to find the actual directory. In the above example,
The <code>TRUENAME</code> 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 <tt>SUBST</tt> and <tt>JOIN</tt> to find the actual directory. This command displays the [[Path (computing)#Uniform Naming Convention|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 <tt>which</tt> command, which, given an executable found in $PATH, would give a full path and name. The C library function <code>realpath</code> performs this function. The Microsoft Windows command processors do not support this command.


=== TYPE ===
<code>TRUENAME MYPROG</code>
{{main|TYPE (DOS command)}}
Displays a file. The <tt>more</tt> command is frequently used in conjunction with this command, e.g. <tt>type ''long-text-file'' | more</tt>. Equivalent to the Unix command <code>[[Cat (Unix)|cat]]</code>. TYPE can be used to concatenate files (type file1 file2 > file3); however this won't work for large files--use copy command instead.


=== UNDELETE ===
would display
{{main|Undeletion}}
Restores file previously deleted with <tt>del</tt>. By default all recoverable files in the working directory are restored; options are used to change this behavior. if the MS-DOS <tt>mirror</tt> TSR program is used, then deletion tracking files are created and can be used by <tt>undelete</tt>. Undeletion in Unix and Unix-like systems differs from filesystem to filesystem. For the [[ext2]] filesystem, one example command is <tt>e2undel</tt>.


=== VER ===
<code>C:\PROGRAMS\MYPROG.EXE</code>
{{main|VER (command)}}

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 <code>winver</code>. Values returned:
and for a substituted drive set up by

<code>subst d: c:\util\test</code>

the command

<code>truename d:\test.exe</code>

will display

<code>c:\util\test\test.exe</code>

This command also displays the [[Path (computing)#Uniform Naming Convention|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 <tt>which</tt> command, which, given an executable found in $PATH, would give a full path and name. The C library function <code>realpath</code> performs this function.

The Microsoft Windows command processors do not support this command.

=== [[TYPE (DOS command)|TYPE]] ===
Display a file. The <tt>more</tt> command is frequently used in conjunction with this command, e.g. <tt>type ''long-text-file'' | more</tt>.

type ''filename''

Equivalent to the Unix command <code>[[Cat (Unix)|cat]]</code>. You can use this to concatenate files (type file1 file2 > file3) however this won't work for large files--use copy command instead.

=== [[Undeletion|UNDELETE]] ===
Restores file previously deleted with <tt>del</tt>. By default all recoverable files in the working directory are restored. The options are used to change this behavior. if the MS-DOS <tt>mirror</tt> TSR program is used, then deletion tracking files are created and can be used by <tt>undelete</tt>.

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 <tt>e2undel</tt>.

=== [[VER (command)|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.
* 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.)
* 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.)
Line 752: Line 315:


=== VERIFY ===
=== VERIFY ===
Enables or disables the feature to determine if files have been correctly written to disk.
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.<ref>{{cite web|url=http://www.csulb.edu/~murdock/verify.html|title=DOS Command: VERIFY|publisher=|accessdate=10 September 2014}}</ref>

If no parameter is provided, the command will display the current setting.<ref>{{cite web|url=http://www.csulb.edu/~murdock/verify.html|title=DOS Command: VERIFY|publisher=|accessdate=10 September 2014}}</ref>

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'']


=== XCOPY ===
Equivalent to the Unix command <code>[[cp (Unix)|cp]]</code> when used with <code>-r</code> parameter.
{{main|XCOPY}}
Copy entire directory trees. Xcopy is a version of the copy command that can move files and directories from one location to another. Equivalent to the Unix command <code>[[cp (Unix)|cp]]</code> when used with <code>-r</code> parameter.


== See also ==
== See also ==

Revision as of 23:34, 3 October 2014

This article presents a list of commands used by x86 DOS operating systems. Other DOS operating systems are not part of the scope of this list.

In the PC operating systems MS-DOS and PC DOS, a number of standard system commands were provided for common tasks such as listing files on a disk or moving files. Some commands were built into the command interpreter, others existed as external commands on disk. Over the several generations of DOS, commands were added for the additional functions of the operating system. In the current Microsoft Windows operating system, a text-mode command prompt window can still be used.

Command processing

The command interpreter for DOS (COMMAND.COM) runs when no application programs are running. When an application exits, if the transient portion of the command interpreter in memory was overwritten, DOS will reload it from disk. Some commands are internal — built into COMMAND.COM; others are external commands stored on disk. When the user types a line of text at the operating system command prompt, COMMAND.COM will parse the line and attempt to match a command name to a built-in command or to the name of an executable program file or batch file on disk. If no match is found, an error message is printed, and the command prompt is refreshed.

External commands were too large to keep in the command processor, or were less frequently used. Such utility programs would be stored on disk and loaded just like regular application programs but were distributed with the operating system. Copies of these utility command programs had to be on an accessible disk, either on the current drive or on the command path set in the command interpreter.

In the list below, commands that can accept more than one filename, or a filename including wildcards (* and ?), are said to accept a filespec (file specification) parameter. Commands that can accept only a single filename are said to accept a filename parameter. Additionally, command line switches, or other parameter strings, can be supplied on the command line. Spaces and symbols such as a "/" or a "-" may be used to allow the command processor to parse the command line into filenames, file specifications, and other options.

The command interpreter preserves the case of whatever parameters are passed to commands, but the command names themselves and filenames are case-insensitive.

While many commands are the same across many DOS systems (MS-DOS, PC DOS, DR-DOS, FreeDOS, etc.) some differ in command syntax or name.

DOS commands

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

APPEND

Displays 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 has some creative uses, such as allowing non-CD based games to be run from the CD, using configuration/save files stored on the hard drive.

ASSIGN

The command redirects requests for disk operations on one drive to a different drive. It can also display drive assignments or reset all drive letters to their original assignments. The command is available in MS-DOS 5.00.

ATTRIB

Attrib changes or views the attributes of one or more files. It defaults to displaying the attributes of all files in the current directory. The file attributes available include read-only, archive, system, and hidden attributes. The command has the capability to process whole folders and subfolders of files. the command is roughly equivalent to the Unix commands chattr and lsattr.

BACKUP and RESTORE

These are commands 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. The Basic language as implemented by this was a very common operating system on 8- and 16-bit machines that were made in the 1980's.

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.

Basic was dropped after MS-DOS 4, and PC DOS 5.02. OS/2 (which uses PC DOS 5), has it, while NT (MS-DOS 5) does not.

CALL

Given a batch filename and run parameters, the CALL command invokes one batch program from another batch program. A new batch file context is created with the specified arguments and control is passed to the statement after the label specified.

CD and CHDIR

The CHDIR (or the alternative name CD) command either displays or changes the current working directory. The analogous commands in Unix are cd (change working directory), or pwd (display working directory).

CHCP

The command either displays or changes the active code page used to display character glyphs in a console window. The codepage 1252 lets one use the Windows GUI charset in the command line, while codepage 65001 corresponds to the Unicode utf-8 encoding.

CHKDSK

CHKDSK verifies a storage volume (for example, a hard disk, disk partition or floppy disk) for file system integrity. The command has the ability to fix errors on a volume and recover information from defective disk sectors of a volume. It is analogous to the Unix command fsck.

CHOICE

The CHOICE command is used in batch files to prompt the user to select one item from a set of single-character choices. Choice was introduced as an external command with MS-DOS 6.0;[1] Novell DOS 7[2] and PC DOS 7.0. Earlier versions of DR DOS supported this function with the built-in switch command (for numeric choices) or by beginning a command with a question mark.[2] This command was formerly called ync (yes-no-cancel).[citation needed]

CLS

The CLS or CLRSCR command clears the terminal screen. It is analogous to the Unix clear command.

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. COPY has the ability to concatenate files. The command can copy in text mode or binary mode; n 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. The analogous Unix commands are cp (for copying) and cat (for concatenation). The analogous RT-11, RSX-11, and OpenVMS command is copy.

Files may be copied to devices. For example, copy file con outputs file to the screen console. Devices themselves may be copied to a destination file, for example, copy con file takes the text typed into the console and puts it into file, stopping when EOF (Ctrl+Z) is typed.

CTTY

Defines the terminal device (for example, COM1) to use for input and output.

DEFRAG

The command has the ability to analyze the file fragmentation on a disk drive or to defragment a drive. The command is called DEFRAG in MS-DOS/PC DOS and diskopt in DR-DOS. The is no Unix equivalent.

DEL and ERASE

DEL (or the alternative form ERASE) is used to delete one or more files. The analogous Unix command is rm and the analogous RT-11/RSX-11/OpenVMS command is delete or del.

DELTREE

Deletes a directory along with all of the files and subdirectories that it contains. Normally, it will ask for confirmation of the potentially dangerous action.

The deltree command is included in certain versions of Microsoft Windows and Microsoft DOS Operating Systems. It is specifically available only in versions of MS-DOS 6.0 and higher, and in Microsoft Windows 9x. In Microsoft Windows NT, the functionality provided exists but is handled by the command rd or rmdir which has slightly different syntax. This command has been deprecated for windows7. In Unix, the functionality of deltree is provided by the rm command.

DIR

The DIR command displays the contents of a directory. The contents comprise 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. The command can display files in subdirectories. The resulting directory listing can be sorted by various criteria and filenames can be displayed in a chosen format. The analogous Unix command is ls and the analogous RT-11/RSX-11/OpenVMS command is directory or dir.

ECHO

The ECHO command 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, to files or devices. Often used in batch files to print text out to the user.

Another important use of the echo command is to toggle echoing of commands on and off in batch files. 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.)

The analogous command in Unix is echo.

EDIT

EDIT is a full-screen text editor, included with MS-DOS 5 and 6, OS/2 and Windows NT to 4.0 The corresponding program in Windows 95 and later, and W2k and later is Edit v2.0. PC DOS 6 and later use the DOS E Editor and 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-DOS/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 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

FC and COMP

Show differences between any two files, or any two sets of files.

Equivalent to the Unix commands comm, cmp and diff.

FDISK

The FDISK command anipulates hard disk partition tables. The name derives from IBM's habit of calling hard drives fixed disks. FDISK has the ability to display information about, create, and delete DOS partitions or logical DOS drive. It can also install a standard master boot record on the hard drive.

FIND

The FIND command is 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. It may also be used as a pipe. The analogous command in Unix is grep; the Unix command find performs an entirely different function analogous to dir /s.

FOR

The FOR loop can be used to parse a file or the output of a command.

FORMAT

Deletes the FAT entries and the root directory of the drive/partition, and reformats 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. The analogous command in Unix is mkfs, and in RT-11/RSX-11/OpenVMS it is the format command.

HELP

Gives help about DOS commands.

MS-DOS
help 'command' would give help on a specific command. By itself, it lists the contents of DOSHELP.HLP.
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 and 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

The JOIN command attaches a drive letter to a specified directory on another drive.[3]

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. The command is included only in MS-DOS/PC DOS. DR-DOS used memmax, which opened or closed lower, upper, and video memory access, to block the lower 64K of memory.[4]

LOADHIGH and LH

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. Equivalent to the Unix command mkdir.

MEM

Displays memory usage. It is capable of displaying program size and status, memory in use, and internal drivers. 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. The use of MemMaker was popular among gamers who wanted to enable or disable Expanded memory in order to run a game. 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

The MORE command paginates text, so that one can view files containing more than one screen of text. More may also be used as a filter. Equivalent to the Unix commands more and less.

MOVE

Moves files or renames directories. Equivalent to the Unix command mv. DR-DOS used a separate command for renaming directories, rendir.

MSD

The MSD command provides detailed technical information about the computer's hardware and software. MSD was 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, except in windows7. In windows7 it just pauses it.

PRINT

The PRINT command adds or removes files in 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 (delete a directory); by default the directories must be empty of files for the command to succeed. The deltree command in some versions of MS-DOS and all versions of Windows 9x removes non-empty directories.

REM

Remark command, normally used within a batch file, and for DR-DOS, PC/MS-DOS 6 and above, in CONFIG.SYS. This command is processed by the command processor. Thus, its output can be redirected to create a zero-byte file. REM is useful in logged sessions or screen-captures. One might add comments by way of labels, usually starting with double-colon ::. These are not processed by the command processor. In Unix, the # sign can be used to start a comment.

REN

The REN command renames a file. Unlike the move command, this command cannot be used to rename subdirectories, or rename files across drives. Mass renames can be accomplished by the use of wildcards. 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. 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. From at least Windows 2000, the set command allows for 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.

SMARTDRIVE

SORT

A filter to sort lines in the input data stream and send them to the output data stream. 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]

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. 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 Unix command date displays both the time and date, but does not allow the normal users to change either. Users with superuser privileges may change the time and date. The Unix command time performs a different function.

TREE

Shows the directory tree of the current directory.

TRUENAME

The TRUENAME command produces the full path name of drives, files, or directories.

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. This command 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

Displays a file. The more command is frequently used in conjunction with this command, e.g. type long-text-file | more. Equivalent to the Unix command cat. TYPE can be used to concatenate files (type file1 file2 > file3); however this won't work for large files--use copy command instead.

UNDELETE

Restores file previously deleted with del. By default all recoverable files in the working directory are restored; 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. Undeletion in Unix and Unix-like systems differs from filesystem to filesystem. For the ext2 filesystem, one example command is 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. Values 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]

XCOPY

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

See also

References

  1. ^ "MS-DOS choice command help". Retrieved 10 September 2014.
  2. ^ a b "Caldera DR-DOS 7.03 User Guide". Retrieved 10 September 2014.
  3. ^ a b c EasyDOS Command Index
  4. ^ DR DOS 6.0 User Guide. Digital Research. 1991.
  5. ^ "MS-DOS mode command help". Retrieved 10 September 2014.
  6. ^ "MS-DOS msd command help". Retrieved 10 September 2014.
  7. ^ Karp, David Aaron (2005). Windows XP in a nutshell. Nutshell handbook (2 ed.). O'Reilly Media, Inc. p. 422. ISBN 978-0-596-00900-7. Retrieved 2010-11-26. {{cite book}}: Unknown parameter |coauthors= ignored (|author= suggested) (help)
  8. ^ "Microsoft on "sort"". Retrieved 10 September 2014.
  9. ^ "DOS Command: VERIFY". Retrieved 10 September 2014.

External links

There are several guides to DOS commands available that are licenced under the GNU Free Documentation License: