Thelen Tree Farm

Celebrating 20 Years - 2001 ~ 2021  



MS-DOS Prompt Commands

The Following is a list of MS-DOS commands for Windows NT4.0®. These are useful to Windows users for several reasons. Many tasks that can be performed in the Windows graphical environment can be performed much more quickly and efficiently by utilizing DOS commands. Also, most bootable floppy disks will boot the system directly to a DOS environment.
Users of any Windows system can invoke a command prompt by performing the following steps:
1. Click Start, 2. Select Run, 3. In the "Open:" field, type command, 4. Click OK.



Command List

assoc compact findstr path shift
at convert for pause sort
attrib copy format popd start
break date ftype print subst
cacls del, erase goto prompt time
call dir graftabl pushd title
cd, chdir diskcomp help rd, rmdir tree
chcp diskcopy if recover type
chkdsk doskey keyb rem ver
cls echo label ren, rename verify
cmd endlocal mode replace vol
color exit more restore xcopy
command fc md, mkdir set  
comp find move setlocal  
         

back to top
attrib

Displays or changes file attributes.
ATTRIB  [+r | -r]  [+a | -a]  [+s | -s]  [+h \ =h]  [[drive:] [path] filename]  [/s]
+   sets an attribute.
-   clears an attribute.
r   read-only file attribute.
a   archive file attribute.
s   system file attribute.
h   hidden file attribute.
s   hidden file attribute.
/s   processes matching files in the current directory and all subdirectories.


back to top
break

Sets or clears extended CTRL+C checking on DOS system.
This is present for compatibility with DOS systems.   It has no effect under Windows NT®.
If command extensions are enabled, and running on the Windows NT® platform, then the BREAK command will enter a hard coded breakpoint if being debugged by a debugger.


back to top
cacls

Displays or modifies access control lists (ACLs) of files.

CACLS filename   [/t]   [/e]   [/c]   [/g user:perm]   [/r user [. . .] ]   [/p user:perm]  [/d user [. . .]]

filename   displays ACLs.
/t   changes ACLs of specified files in the current directory and all subdirectories.
/e   edit ACL instead of replacing it.
/c   continue on access denied errors.
/g user:perm   grant specified user access rights.
perm can be:
 
 
R
C
F
read
change (write)
full control
/r user   revoke specified user's access rights (only valid with /e).
/p user:perm   replace specified user's access rights.
perm can be:
 
 
R
C
F
read
change (write)
full control
/d user   deny specified user access.
Wildcards can be used to specify more than one file in a command.   You can specify more than one user in a command.


back to top
call

Calls one batch program from another.

CADD  [drive:][path]\filename [batch-parameters]

batch-parameters   specifies any command-line information required by the batch program.
If Command Extensions are enabled CALL changes as follows:
CALL command now accepts labels as the target of the CALL .
The syntax is:

CALL :label arguments
A new batch file context is created with the specified arguments and control is passed to the statement after the label specified.
You must "exit" twice by reaching the end of the batch script file twice.
The first time you read the end, control will return to just after the CALL statement.
The second time will exit the batch script.
Type GOTO /? for a description of the GOTO :EOF extension that will allow you to "return" from a batch script.
In addition, expansion of batch script argument references (%0, %1, etc)
have been changed as follows:
%*   in a batch script refers to all the arguments (e.g. %1 %2 %3 %4 %5 ...)
Substitution of batch parameters %n has been enhanced.
You can now use the following optional syntax:
%~f1   expands %1 to a fully qualified path name.
%~d1   expands %1 to a drive letter only.
%~p1   expands %1 to a path only.
%~n1   expands %1 to a file name only.
%~x1   expands %1 to a file extension only.
%~s1   changes the meaning of n and x to reference the short name instead.
%~$path:1   searches the directories listed in the path environment variable and expands %1 to the fully qualified name of the first one found.   If the environment variable name is not defined or the file is not found by the search, then this modifier expands to the empty string.   The modifiers can be combined to get compound results:
%~dp1   expands %1 to a drive letter and path only.
%~nx1   expands %1 to a file name and extension only.
%~dp$path:1   searches the directories listed in the path environment variable for %1 and expands to the drive letter and path of the first one found.
In the above examples %1 and path can be replaced by other valid values.


back to top
cd, chdir

Displays the name of or changes the current directory.

CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]

CD ..  specifies that you want to change to the parent directory.
Type CD drive: to display the current directory in the specified drive.
Type CD without parameters to display the current drive and directory.
Use the /D switch to change current drive in addition to changing current directory for a drive.
If Command Extensions are enabled, CHDIR changes as follows:
The current directory string is converted to use the same case as the on disk names.
So CD C:\TEMP would actually set the current directory to C:\Temp if that is the case on disk.
CHDIR command does not treat spaces as delimiters, so it is possible to CD into a subdirectory name that contains a space without surrounding the name with quotes.   For example:
CD  \winnt\profiles\username\programs\start menu
is the same as:
CD  "\winnt\profiles\username\programs\start menu"
which is what you would have to type if extensions were disabled.

back to top
chcp

Displays or sets the active code page number

CHCP [nnn]

nnn  Specifies a code page number.
Type CHCP without a parameter to display the active code page number.


back to top
chkdsk

Checks a disk and displays a status report

CHKDSK [drive:] [ [path] filename] [/F] [/V] [/R] [/L[:size] ]

drive:  Specifies the drive to check
filename  Specifies the file(s) to check for fragmentation (FAT only).
/F  Fixes errors on the disk.
/V  Displays the full path and name of every file on the disk.
/R  Locates bad sectors and recovers readable information
/L:size  NTFS only: changes the log file size to the specified number of
 kilobytes. If size is not specified, displays current size.
 
back to top
cls
Clears the screen

CLS

back to top
cmd

Starts a new instance of the Windows/NT command interpreter

CMD [/X | /Y] [/A | /U] [/Q] [[/C | /K] string]
/C  Carries out the command specified by string and then terminates
/K  Carries out the command specified by string but remains
/Q  Turns the echo off
/A  Causes the output of internal commands to a pipe or file to be ANSI
/U  Causes the output of internal commands to a pipe or file to be Unicode
/T:fg  Sets the foreground/background colors (see COLOR /? for more info)
/X  Enable extensions to the Windows NT version of cmd.exe
/Y  Disable extensions to the Windows NT version of cmd.exe
Note that multiple commands separated by the command separator '&&' are accepted for string if surrounded by quotes
 
Command Extensions are enabled by default. You may also disable extensions for all invocations of the command processor by setting the following value in the registry to 0
HKEY_CURRENT_USER\Software\Microsoft
\Command Processor\EnableExtensions  
cmd
(continued)
The command extensions involve changes and/or additions to the following commands:
DEL or ERASE
COLOR
CD or CHDIR
MD or MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (also includes changes to external command invocation)
ASSOC
FTYPE
To get specific details, type HELP commandname to view the specifics.
 
back to top
color

Sets the default console foreground and background colors.

COLOR [attr]

attr Specifies color attribute of console output
Color attributes are specified by TWO hex digits -- the first corresponds to the background; the second the foreground. Each digit can be any of the following values:
0 = Black  8 = Gray
1 = Blue  9 = Light Blue
2 = Green  A = Light Green
3 = Aqua  B = Light Aqua
4 = Red  C = Light Red
5 = Purple  D = Light Purple
6 = Yellow  E = Light Yellow
7 = White  F = Bright White
If no argument is given, this command restores the color to what it was when cmd.exe started. This value either comes from the current console window, the /T command line switch or from the DefaultColor registry value.
The COLOR command sets ERRORLEVEL to 1 if an attempt is made to execute the COLOR command with a foreground and background color that are the same.
Example:
"COLOR fc" produces light red on bright white
 
 
back to top
command

Starts a new instance of the MS-DOS command interpreter.

COMMAND [[drive:]path] [device] [/E:nnnnn] [/P] [/C string] [/MSG]

[drive:]path  Specifies the directory containing COMMAND.COM file.

device
 Specifies the device to use for command input and output.
/E:nnnnn  Sets the initial environment size to nnnnn bytes.
/P  Makes the new command interpreter permanent (can't exit).
/C string  Carries out the command specified by string, and then stops.
/MSG  Specifies that all error messages be stored in memory. You need to
 specify /P with this switch.
 
back to top
comp

Compares the contents of two files or sets of files.

COMP [data1] [data2] [/D] [/A] [/L] [/N=number] [/C]

data1  Specifies location and name(s) of first file(s) to compare.
data2  Specifies location and name(s) of second file(s) to compare.
/D  Displays differences in decimal format. This is the default setting.
/A  Displays differences in ASCII characters.
/L  Displays line numbers for differences.
/N=number  Compares only the first specified number of lines in each file.
/C  Disregards case of ASCII letters when comparing files.
To compare sets of files, use wildcards in data1 and data2 parameters.
 
back to top
compact

Displays or alters the compression of files on NTFS partitions.

COMPACT [/C | /U] [/S[:dir] ] [/A] [/I] [/F] [/Q] [filename [. . .] ]

/C  Compresses the specified file(s). Directories will be marked so that
 files added afterward will be compressed.
/U  Uncompresses the specified file(s). Directories will be marked so
 that files added afterward will not be compressed.
/S  Performs the specified operation on files in the given directory and
 all subdirectories. Default "dir" is the current directory.
/A  Displays files with the hidden or system attributes. These files are
 omitted by default.
/I  Continues performing the specified operation even after errors have
 occurred. By default, COMPACT stops when an error is
 encountered.
/F  Forces the COMPRESS operation on all specified files, even those
 which are already compressed. Already-compressed files are
 skipped by default.
/Q  Reports only the most essential information.
filename  Specifies a pattern, file, or directory.
Used without parameters, COMPACT displays the compression state of the current directory and any files it contains. You may use multiple filenames and wildcards. You must put spaces between multiple parameters.
 
back to top
convert

Converts FAT volumes to NTFS.

CONVERT drive: /FS:NTFS [/V]

drive  Specifies the drive to convert to NTFS. Note that you cannot  convert the current drive.
/FS:NTFS  Specifies to convert the volume to NTFS.
/B  Specifies that CONVERT should be run in verbose mode.
 
back to top
copy

Copies one or more files to another location.

COPY [/A | /B] source [/A | /B] [+ source [/A | /B] [+ . . .]] [destination [/A | /B]] [/V] [/N]

source  Specifies the file or files to be copied.
/A  Indicates an ASCII text file.
/B  Indicates a binary file.
destination  Specifies the directory and/or filename for the new file(s).
/V  Verifies that new files are written correctly.
/N  Uses short filename, if available, when copying a file with a
 non-8dot3 name.
/Z  Copies networked files in restartable mode.
To append files, specify a single file for destination, but multiple files for source (using wildcards or file1+file2+file3 format).
 
back to top
date

Displays or sets the date.

DATE [date]

Type DATE without parameters to display the current date setting and a prompt for a new one. Press ENTER to keep the same date.
If Command Extensions are enabled the DATE command supports the /T switch which tells the command to just output the current date, without prompting for a new date.
 
back to top
del, erase

Deletes one or more files.

DEL  [/P] [/F] [/S] [/Q] [/A[[:]attributes]] [[drive:][path]filename

ERASE  [/P] [/F] [/S] [/Q] [/A[[:]attributes]] [[drive:][path]filename

[drive:][path]filename

Specifies the file(s) to delete.
Specify multiple files by using wildcards:
/P  Prompts for confirmation before deleting each file.
/F   Force deleting of read-only files.
/S  Delete specified files from all subdirectories.
/Q  Quiet mode, do not ask if ok to delete on global wildcard
/A  Selects files to delete based on attributes
attributes  R Read-only files  S System files
 H Hidden files  A Files ready for archiving
If Command Extensions are enabled DEL and ERASE change as follows:
The display semantics of the /S switch are reversed in that it shows you only the files that are deleted, not the ones it could not find.
 
 
back to top
dir

Displays a list of files and subdirectories in a directory.

DIR  [drive:][path][filename] [/P] [/W] [/D] [/A[[:]attributes]]

[/O[[:]sortorder]] [/T[[:]timefield]] [/S] [/B] [/L] [/N] [/X] [/C]

[drive:][path][filename]

Specifies drive, directory, and/or files to list.
/P  Pauses after each screenful of information.
/W  Uses wide list format.
/D  Same as wide but files are list sorted by column.
/A  Displays files with specified attributes.
attributes  D Directories  R Read-only files
  H Hidden files  A Files ready for archiving
 S System files  - Prefix meaning not
/O  List by files in sorted order.
sortorder  N By name (alphabetic)  S By size (smallest first)
  E By extension (alphabetic)  D By date & time (earliest first)
  G Group directories first  - Prefix to reverse order
/T   Controls which time field displayed or used for sorting
timefield  C Creation
 A Last Access
  W Last Written
/S  Displays files in specified directory and all subdirectories.
/B  Uses bare format (no heading information or summary).
/L  Uses lowercase.
/N  New long list format where filenames are on the far right.
/X  This displays the short names generated for non-8dot3 file
names. The format is that of /N with the short name inserted before the long name. If no short name is present, blanks are displayed in its place.
/C  Display the thousand separator in file sizes. This is the default.
 Use /-C to disable display of separator.
Switches may be preset in the DIRCMD environment variable. Override preset switches by prefixing any switch with - (hyphen)--for example, /-W.
 
back to top
diskcomp

Compares the contents of two floppy disks.

DISKCOMP [dirve1: [drive2:] ]


back to top
diskcopy

Copies the contents of one floppy disk to another.

DISKCOPY [dirve1: [drive2:] ] [/V]

/V
 Verifies that the information is copied correctly.
The two floppy disks must be the same type. You may specify the same drive for drive1 and drive2.
 
back to top
doskey

Edits command lines, recalls Windows NT commands, and creates macros.

DOSKEY  [/REINSTALL] [/LISTSIZE=size] [/MACROS[:ALL | :exename] ]

[/HISTORY] [/INSERT | /OVERSTRIKE] [/EXENAME=exename]

[MACROFILE=filename] [macroname=[text] ]

/REINSTALL
 Installs a new copy of doskey.
/LISTSIZE=size  Sets size of command history buffer.
/MACROS  Displays all doskey macros.
/MACROS:ALL  Displays all doskey macros for all executables which
 have doskey macros.
/MACROS:exename  Displays all doskey macros for the given executable.
/HISTORY  Displays all commands stored in memory.
/INSERT  Specifies that new text you type is inserted in old text.
/OVERSTRIKE  Specifies that new text overwrites old text.
/EXENAME=exename  Specifies the executable.
/MACROFILE=filename  Specifies a file of macros to install.
macroname  Specifies a name for a macro you create.
text  Specifies commands you want to record.
UP and DOWN arrows recall commands
ESC clears command line
F7 displays command history
alt+F7 clears command history
F8 searches command history
F9 selects a command by number
alt+F10 clears macro definitions
The following are some special codes in doskey macro definitions:
$T  Command separator. Allows multiple commands in a macro.
$1-$9  Batch parameters. Equivalent to %1-%9 in batch programs.
$*  Symbol replaced by everything following macro name on
 command lines.
 
back to top
echo

Displays messages, or turns command-echoing on or off.

ECHO [ON | OFF]ECHO [message]

Type ECHO without parameters to display the current echo setting.


back to top
endlocal

Ends localization of environment changes in a batch file. Environment changes made after ENDLOCAL has been issued are not local to the batch file; the previous settings are not restored on termination of the batch file.

ENDLOCAL
If Command Extensions are enabled ENDLOCAL changes as follows:
If the corresponding SETLOCAL enable or disabled command extensions using the new ENABLEEXTENSIONS or DISABLEEXTENSIONS options, then after the ENDLOCAL, the enabled/disabled state of command extensions will be restored to what it was prior to the matching SETLOCAL command execution.


back to top
exit

Quits the cmd.exe program (command interpreter).

EXIT


back to top
fc

Compares two files or sets of files and displays the differences between them

FC  [/A] [/C] [/L] [/LBn] [/N] [/T] [/U] [/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.
/U  Compare files as UNICODE text files.
/W  Compresses white space (tabs and spaces) for comparison.
/nnnn  Specifies the number of consecutive lines that must match after
 a mismatch.
 
back to top
find

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 path is not specified, FIND searches the text typed at the prompt or piped from another command.
 
back to top
findstr

Searches for strings in files.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/F:file]

[/C:string] [/G:file] [strings] [[drive:][path]filename[ ...]]


/B   Matches pattern if at the beginning of a line.
/E  Matches pattern if at the end of a line.
/L  Uses search strings literally.
/R  Uses search strings as regular expressions.
/S  Searches for matching files in the current directory and all
subdirectories.
/I  Specifies that the search is not to be case-sensitive.
/X  Prints lines that match exactly.
/V  Prints only lines that do not contain a match.
/N  Prints the line number before each line that matches.
/M  Prints only the filename if a file contains a match.
/O  Prints character offset before each matching line.
/P  Skip files with non-printable characters
/F:file  Reads file list from the specified file(/ stands for console).
/C:string  Uses specified string as a literal search string.
/G:file  Gets search strings from the specified file(/ stands for console).
strings  Text to be searched for.
[drive:][path]filename  Specifies a file or files to search.
Use spaces to separate multiple search strings unless the argument is prefixed with /C. For example:
'FINDSTR "hello there" x.y' searches for "hello" or "there" in file x.y.
'FINDSTR /C:"hello there" x.y' searches for "hello there" in file x.y.
For information on FINDSTR regular expressions refer to the online Command Reference.
 
back to top
for

Runs a specified command for each file in a set of files.

FOR %variable IN (set) DO command [command-parameters]

%variable
 Specifies a replaceable parameter.
(set)  Specifies a set of one or more files. Wildcards may
be used.
command  Specifies the command to carry out for each file.
command-parameters  Specifies parameters or switches for the specified  command.
To use the FOR command in a batch program, specify %%variable instead of %variable
Variable names are case sensitive, so %i is different from %I.
If Command Extensions are enabled, the following additional forms of the FOR command are supported:
FOR /D %variable IN (set) DO command [command-parameters]
If set contains wildcards, then specifies to match against directory names instead of file names.
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
Walks the directory tree rooted at [drive:]path, executing the FOR statement in each directory of the tree. If no directory specification is specified after /R then the current directory is assumed. If set is just a single period (.) character then it will just enumerate the directory tree.
FOR /L %variable IN (start,step,end) DO command [command-parameters]
The set is a sequence of numbers from start to end, by step amount. So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would generate the sequence
(5 4 3 2 1)
Command: for
(continued)
FOR /F ["options"] %variable IN (filenameset) DO command [command parameters]

filenameset
is one or more file names. Each file is opened, read and processed before going on to the next file in filenameset.
Processing consists of reading in the file, breaking it up into individual lines of text and then parsing each line into zero or more tokens.
The body of the FOR loop is then called with the variable value(s) set to the found token string(s).
By default, /F passes the first blank separated token from each line of each file. Blank lines are skipped.
You can override the default parsing behavior by specifying the optional "options" parameter.
This is a quoted string which contains one or more keywords to specify different parsing parameters.
The keywords are:
eol=c  - specifies an end of line comment character (just one)
skip=n  - specifies the number of lines to skip at the beginning of the
file.
delims=xxx  - specifies a delimiter set. This replaces the default
 delimiter set of space and tab.
tokens=x,y,m-n  - specifies which tokens from each line are to be passed to
the for body for each iteration. This will cause additional variable names to be allocated. The m-n form is a range, specifying the mth through the nth tokens. If the last character in the tokens= string is an asterisk, then an additional variable is allocated and receives the remaining text on the line after the last token parsed.

Command: for (continued)
Some examples might help:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
would parse each line in myfile.txt, ignoring lines that begin with a semicolon, passing the 2nd and 3rd token from each line to the for body, with tokens delimited by commas and/or spaces. Notice the for body statements reference %i to get the 2nd token, %j to get the 3rd token, and %k to get all remaining tokens after the 3rd.
%i is explicitly declared in the for statement and the %j and %k are implicitly declared via the tokens= option. You can specify up to 26 tokens via the tokens= line, provided it does not cause an attempt to declare a variable higher than the letter 'z'. Remember, FOR variable names are global, and you can't have more than 26 total active at any one time.
You can also use the FOR /F parsing logic on an immediate string, by making the filenameset between the parenthesis a quoted string. It will be treated as a single line of input from a file and parsed.
Finally, you can use the FOR /F command to parse the output of a command. You do this by making the filenameset between the parenthesis a single quoted string. It will be treated as a command line, which is passed to a child cmd.exe and the output is captured into memory and parsed as if it was a file. So the following example:
FOR /F "delims==" %i IN ('set') DO @echo %i
would enumerate the environment variable names in the current environment.

Command: for
(continued)

In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax:
%~fi  - expands %i to a fully qualified path name
%~di  - expands %i to a drive letter only
%~pi  - expands %i to a path only
%~ni  - expands %i to a file name only
%~xi  - expands %i to a file extension only
%~si  - expanded path contains short names only
%~$PATH:I  - searches the directories listed in the PATH environment variable and expands %i to the fully qualified name of the first one found. If the environment variable name is not defined or the file is not found by the search, then this modifier expands to the empty string
The modifiers can be combined to get compound results:
%~dpi  - expands %i to a drive letter and path only
%~nxi  - expands %i to a file name and extension only
%~fsi  - expands %i to a full path name with short names only
%~dp$PATH:I  - searches the directories listed in the PATH environment variable for %i and expands to the drive letter and path of the first one found.
In the above examples %i and PATH can be replaced by other valid values. Just be careful to pick your FOR variable letters to not conflict with any of the format specifier letters if you plan on using the enhanced substitution logic.
 
back to top
format

Formats a disk for use with Windows NT.

FORMAT drive: [/FS:file-system] [/V:label] [/Q] [/A:size] [/C]

FORMAT drive: [/V:label] [/Q] [/F:size]

FORMAT drive: [/V:label] [/Q] [/T:tracks /N:sectors]

FORMAT drive: [/Q] [/1] [/4] [/8]

/FS:file-system
 Specifies the type of the file system (FAT or NTFS).
/V:label  Specifies the volume label.
/Q  Performs a quick format.
/C  Files created on the new volume will be compressed by default.
/A:size  Overrides the default allocation unit size. Default settings are
 strongly recommended for general use.
 NTFS supports 512, 1024, 4096, 8192, 16K, 32K, 64K.
 FAT supports 8192, 16K, 32K, 64K, 128K, 256K.
 NTFS compression is not supported for allocation unit sizes
 above 4096.
/F:size  Specifies the size of the floppy disk to format (160, 180, 320,
 360, 720, 1.2, 1.44, 2.88, or 20.8)
/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


back to top
ftype

Displays or modifies file types used in file extension associations

FTYPE [fileType[=[openCommandString]]]

fileType
 Specifies the file type examine or change
openCommandString  Specifies the open command to use when launching
 files of this type.
Type FTYPE without parameters to display the current file types that have open command strings defined. FTYPE is invoked with just a file type, it displays the current open command string for that file type.
Specify nothing for the open command string and the FTYPE command will delete the open command string for the file type.
Within an open command string %0 or %1 are substituted with the file name being launched through the association.
%* gets all the parameters and %2 gets the 1st parameter, %4 the second, etc. %~n gets all the remaining parameters starting with the nth parameter, where n may be between 2 and 9, inclusive.
For example:
ASSOC .pl=perlScript
FTYPE perlScript=perl.exe %1 %*

would allow you to invoke a Perl script as follows:
script.pl 1 2 3
if you want to eliminate the need to type the extensions, then do the following:
set PATHEXT=.pl;%PATHEXT%
and the script could be invoked as follows:
script 1 2 3


back to top
goto

Directs cmd.exe to a labeled line in a batch program.

GOTO label
label  Specifies a text string used in the batch program as a label.
You type a label on a line by itself, beginning with a colon.
If Command Extensions are enabled GOTO changes as follows:
GOTO command now accepts a target label of :EOF which transfers control to the end of the current batch script file. This is an easy way to exit a batch script file without defining a label. Type CALL /? for a description of extensions to the CALL command that make this feature useful.


back to top
graftabl

Enable Windows NT to display an extended character set in graphics mode.

GRAFTABL [xxx]

GRAFTABL /STATUS

xxx
 Specifies a code page number.
/STATUS  Displays the current code page selected for use with GRAFTABL.


back to top
help

Provides help information for Windows NT commands.

HELP [command]

command
 - displays help information on that command.
GOTO command now accepts a target label of :EOF which transfers control to the end of the current batch script file. This is an easy way to exit a batch script file without defining a label. Type CALL /? for a description of extensions to the CALL command that make this feature useful.


back to top
if

Performs conditional processing in batch programs.

IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command

NOT
 Specifies that Windows NT should carry out the
 command only if the condition is false.
ERRORLEVEL number  Specifies a true condition if the last program run
 returned an exit code
 equal to or greater than the number specified.
command  Specifies the command to carry out if the condition
 is met.
string1==string2  Specifies a true condition if the specified text
 strings match.
EXIST filename  Specifies a true condition if the specified filename
 exists.
If Command Extensions are enabled IF changes as follows:
IF [/I] string1 compare-op string2 command
IF CMDEXTVERSION number command
IF DEFINED variable command


where compare-op may be one of:
EQU  - equal
NEQ  - not equal
LSS  - less than
LEQ  - less than or equal
GTR  - greater than
GEQ  - greater than or equal
and the /I switch, if specified, says to do case insensitive string compares.
The /I switch can also be used on the string1==string2 form of IF.
These comparisons are generic, in that if both string1 and string2 are both comprised of all numeric digits, then the strings are converted to numbers and a numeric comparison is performed.

if
(continued)

The CMDEXTVERSION conditional works just like ERRORLEVEL, except it is comparing against an internal version number associated with the Command Extensions.
The first version is 1. It will be incremented by one when significant enhancements are added to the Command Extensions.
CMDEXTVERSION conditional is never true when Command Extensions are disabled.
The DEFINED conditional works just like EXISTS except it takes an environment variable name and returns true if the environment variable is defined.
%ERRORLEVEL% will expand into a string representation of the current value of ERRORLEVEL, provided that there is not already an environment variable with the name ERRORLEVEL, in which case you will get its value instead. Using this and the above numerical comparison operators, you can do the following:
choice
goto answer%ERRORLEVEL%
:answer0
echo You typed Y for yes
:answer1
echo You typed N for no

you can also using the numerical comparisons above:

IF %ERRORLEVEL% LEQ 1 goto okay
%CMDCMDLINE%
will expand into the original command line passed to cmd.exe prior to any processing by cmd.exe, provided that there is not already an environment variable with the name CMDCMDLINE, in which case you will get its value instead.


back to top
keyb

Configures a keyboard for a specific language.

KEYB [xx [, [yyy] [, [drive:] [path] filename] ] ] [/E] [/ID:nnn]

xx
 Specifies a two-letter keyboard code.
yyy  Specifies a console code page.
[drive:] [path] filename  Ignored.
/E  Ignored.
/ID:nnn  Ignored.


back to top
label

Creates, changes, or deletes the volume label of a disk.

LABEL [drive:][label]


back to top
mode

Configures system devices.

Serial port:  MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]

[to=on|off] [xon=on|off] [odsr=on|off]
[octs=on|off] [dtr=on|off|hs]
[rts=on|off|hs|tg] [idsr=on|off]


Device Status: MODE [device] [/STATUS]
Redirect printing: MODE LPTn[:]=COMm[:]
Select code page: MODE CON[:] CP SELECT=yyy
Code page status: MODE CON[:] CP [/STATUS]
Display mode: MODE CON[:] [COLS=c] [LINES=n]
Typematic rate: MODE CON[:] [RATE=r DELAY=d]



back to top
more

Displays output one screen at a time.

MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename

command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]

MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]
[drive:][path]filename
Specifies a file to display one screen at a time.
command-name  Specifies a command whose output will be displayed.
/E  Enable extended features
/C  Clear screen before displaying page
/P  Expand FormFeed characters
/S  Squeeze multiple blank lines into a single line
/Tn  Expand tabs to n spaces (default 8)
Switches can be present in the MORE environment variable.
+n  Start displaying the first file at line n
files  List of files to be displayed. Files in the list are separated by blanks.
If extended features are enabled, the following commands are accepted at the
-- More -- prompt:
P n  Display next n lines
S n  Skip next n lines
F  Display next file
Q  Quit
=  Show line number
?  Show help line
<space>  Display next page
<ret>  Display next line


back to top
md, mkdir

Creates a directory.

MD [drive:] path

MKDIR [drive:] path


If command extensions are enabled, MKDIR changes as follows.
MKDIR creates any intermediate directories in the path, if needed. For example, assume \a does not exist. Then:
mkdir \a\b\c\d
is the same as:
mkdir \a
chdir \a
mkdir \b
chdir \b
mkdir \c
chdir \c
mkdir \d

which is what you would have to type if extensions were disabled.


back to top
move

Moves one or more files from one directory to another directory.

MOVE [source] [target]

source
 Specifies the path and name of the file(s) to move.
target  Specified the path and name to move file(s) to.


back to top
path

Displays or sets a search path for executable files.

PATH [[drive:]path[;...][;%PATH%]

Type PATH ; to clear all search-path settings and direct cmd.exe to search only in the current directory.
Type PATH without parameters to display the current path.
Including %PATH% in the new path setting causes the old path to be appended to the new setting.


back to top
pause

Suspends processing of a batch program and displays the message

Press any key to continue . . .


back to top
popd

Changes to the directory stored by the PUSHD command.

POPD
If Command Extensions are enabled the POPD command will delete an temporary
drive letter created by PUSHD when you POPD that drive off the pushed
directory stack.


back to top
print

Prints a text file.

PRINT [/D:device] [[drive:][path]filename[...]]

/D:device
 Specifies a print device.


back to top
prompt

Changes the cmd.exe command prompt.

PROMPT [text]

text
 Specifies a new command prompt.
Prompt can be made up of normal characters and the following special codes:
$A  &  (ampersand)
$B  |  (pipe
$C  (  (left parenthesis)
$D  current date
$E  escape code (ASCII code 27)
$F  )  (right parenthesis)
$G  >  (greater-than sign)
$H  backspace (erases previous character)
$L  <  (less-than sign)
$N  current drive
$P  current drive and path
$Q  =  (equal sign)
$S    (space)
$T  current time
$V  Windows NT version number
$_  carriage return and linefeed
$$  $  (dollar sign)
If command extensions are enabled, the PROMPT command supports the following additional formatting characters:
$+  zero or more plus sign (+) characters depending upon the depth of
 the PUSHD directory stack, one character for each level pushd.
$M  displays the remote name associated with the current drive letter
 or the empty string if current drive is not a network drive


back to top
pushd

Stores the current directory for use by the POPD command, then changes to the specified directory.

PUSHD [path | ..]

Path  Specifies the directory to make the current directory.
If Command Extensions are enabled the PUSHD command accepts network paths in addition to the normal drive letter and path.
If a network path is specified, PUSHD will create a temporary drive letter that points to that specified network resource and then change the current drive and directory, using the newly defined drive letter.
Temporary drive letters are allocated from Z: on down, using the first unused drive letter found.


back to top
rd, rmdir

Removes (deletes) a directory.

RD [/S] [/Q] [drive:] path

RMDIR [/S] [/Q] [drive:] path

/S
 Removes all directories and files in the specified directory in addition to
 the directory itself. Used to remove a directory tree.
/Q  Quiet mode. Do not ask if OK to remove a directory tree with /S.


back to top
recover

Recovers readable information from a bad or defective disk.

RECOVER [drive:] [path] filename

Consult the online Command Reference in Windows NT Help before using the RECOVER command.


back to top
rem

Records comments (remarks) in a batch file or CONFIG.SYS.

REM [comment]


back to top
ren, rename

Renames a file or files.

REN [drive:] [path] filename1 filename2RENAME [drove:] [path] filename1 filename2

Note that you cannot specify a new drive or path for your destination file.


back to top
replace

Replaces files.

RESTORE  drive1: drive2: [path [filename] ] [/S] [ /P] [/B:date] [/A:date] [/E:time] [/L:time]

[/M] [/N] [/D]

drive1:
 Specifies the drove on which the backup files are stored.
drive2: [path [filename] ]  Specifies the file(s) to restore.
/S  Restores files in all subdirectories in the path.
/P  Prompts before restoring read-only files or files changed since the
 last backup (if appropriate attributes are set).
/B  Restores only files last changed on or before the specified date.
/A  Restores only files changed on or after the specified date.
/E  Restores only files last changed at or earlier than the specified time.
/L  Restores only files changed at or later than the specified time.
/M  Restores only files changed since the last backup.
/N  Restores only files that no longer exist on the destination disk.
/D  Displays files on the backup disk that match specifications.


back to top
restore

Restores files that were backup up by using the DOS BACKUP command.

REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [/P] [/R] [/W]REPLACE [drive1:][path1]filename [drive2:][path2] [/P] [/R] [/S] [/W] [/U]

[drive1:][path1]filename
 Specifies the source file or files.
[drive2:][path2]  Specifies the directory where files are to be  replaced.

/A  Adds new files to destination directory.
or /U  Cannot use with /S switches.
/P  Prompts for confirmation before replacing a file or
 adding a source file.
/R  Replaces read-only files as well as unprotected files.
/S  Replaces files in all subdirectories of the destination
 directory.
 Cannot use with the /A switch.
/W  Waits for you to insert a disk before beginning.
/U  Replaces (updates) only files that are older than
 source files.
 Cannot use with the /A switch.

back to top
set

Displays, sets, or removes cmd.exe environment variables.

SET [variable=[string]]

variable  Specifies the environment-variable name.
string  Specifies a series of characters to assign to the variable.
Type SET without parameters to display the current environment variables.
If Command Extensions are enabled SET changes as follows:
SET command invoked with just a variable name, no equal sign or value will display the value of all variables whose prefix matches the name given to the SET command. For example:
SET P would display all variables that begin with the letter 'P' SET command will set the ERRORLEVEL to 1 if the variable name is not found in the current environment.
SET command will allow an equal sign (=) in the value of an environment variable in any position other than the first character.
A new switch is added to the SET command:

set
(continued)

SET /A expression
The /A switch specifies that the string to the right of the equal sign is a numerical expression that is evaluated. The expression evaluator is pretty simple and supports the following operations, in decreasing order of precedence:
( )  - grouping
* / %  - arithmetic operators
+ -  - arithmetic operators
<< >>  - logical shift
&  - bitwise and
^  - bitwise exclusive or
|  - bitwise or
= *= /= %= += -=  - assignment
&= ^= |= <<= >>=
,  - expression separator
If you use any of the logical or modulus operators, you will need to enclose the expression string in quotes.
Any non-numeric strings in the expression are treated as environment variable names whose values are converted to numbers before using them.
If an environment variable name is specified but is not defined in the current environment, then a value of zero is used.
This allows you to do arithmetic with environment variable values without having to type all those % signs to get their values.
If SET /A is executed from the command line outside of a command script, then it displays the final value of the expression.
The assignment operator requires an environment variable name to the left of the assignment operator.
Numeric values are decimal numbers, unless prefixed by 0x for hexidecimal numbers, 0b for binary numbers and 0 for octals numbers.
So 0x12 is the same as 0b10010 is the same as 022.
Please note that the octal notation can be confusing: 08 and 09 are not valid numbers because 8 and 9 are not valid octal digits.

set
(continued)  
 
Environment variable substitution has been enhanced as follows:
%PATH:str1=str2%
would expand the PATH environment variable, substituting each occurrence of "str1" in the expanded result with "str2".
"str2" can be the empty string to effectively delete all occurrences of "str1" from the expanded output.
"str1" can begin with an asterisk, in which case it will match everything from the beginning of the expanded output to the first occurrence of the remaining portion of str1.
%PATH:~10,5%
would expand the PATH environment variable, and then use only the 5 characters that begin at the 11th (offset 10) character of the expanded result.


back to top
setlocal

Begins localization of environment changes in a batch file.

Environment changes made after SETLOCAL has been issued are local to the batch file. ENDLOCAL must be issued to restore the previous settings.
SETLOCAL
If Command Extensions are enabled SETLOCAL changes as follows:
SETLOCAL batch command now accepts an optional argument, which can be either ENABLEEXTENSIONS or DISABLEEXTENSIONS. This will enable or disable the Command process extensions until the matching ENDLOCAL command, regardless of their setting prior to the SETLOCAL command.
The SETLOCAL command will set the ERRORLEVEL value if given an argument. It will be zero if one of the two valid arguments is given and one otherwise. You can use this in batch scripts to determine if the extensions are available, using the following technique:
VERIFY OTHER 2>nul

SETLOCAL ENABLEEXTENSIONS

IF ERRORLEVEL 1 echo Unable to enable extensions
This works because on old versions of cmd.exe, SETLOCAL does NOT set the ERRORLEVEL value. The VERIFY command with a bad argument initializes the ERRORLEVEL value to a non-zero value.


back to top
shift

Changes the position of replaceable parameters in a batch file.

SHIFT [/n]

If Command Extensions are enabled the SHIFT command supports the /n switch which tells the command to start shifting at the nth argument, where n may be between zero and eight. For example:
SHIFT /2 would shift %3 to %2, %4 to %3, etc. and leave %0 and %1 unaffected.


back to top
sort

Sorts input and writes results to the screen, a file, or another device.

SORT  [/R] [/+n] < [drive1:][path1]filename1 [> [drive2:][path2]filename2]

[command |] SORT [/R] [/+n] [> [drive2:][path2]filename2]

/R
 Reverses the sort order; that is, sorts Z to A, then 9 to 0.
/+n  Sorts the file according to characters in column n.
[drive1:][path1]filename1  Specifies a file to be sorted.
[drive2:][path2]filename2  Specifies a file where the sorted input is to be stored.
Command  Specifies a command whose output is to be sorted.


back to top
start

Starts a separate window to run a specified program or command.

START  ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]

[/LOW | /NORMAL | /HIGH | /REaltIME] [/WAIT] [/B]
 [command/program] [parameters]

"title"  Title to display in window title bar.
Path  Starting directory
I  The new environment will be the original environment passed to the
cmd.exe and not the current environment.
MIN  Start window minimized
MAX  Start window maximized
SEPARATE  Start 16-bit Windows program in separate memory space
SHARED  Start 16-bit Windows program in shared memory space
LOW  Start application in the IDLE priority class
NORMAL  Start application in the NORMAL priority class
HIGH  Start application in the HIGH priority class
REALTIME  Start application in the REALTIME priority class
WAIT  Start application and wait for it to terminate
B  Start application without creating a new window.
The application has ^C handling ignored.
Unless the application enables ^C processing, ^Break is the only way to interrupt the application command/program
If it is an internal cmd command or a batch file then the command processor is run with the /K switch to cmd.exe.
This means that the window will remain after the command has been run.
If it is not an internal cmd command or batch file then it is a program and will run as either a windowed application or a console application.
parameters  These are the parameters passed to the command/program

start
(continued)
 
If Command Extensions are enabled, external command invocation through the command line or the START command changes as follows:
non-executable files may be invoked through their file association just by typing the name of the file as a command. (e.g. WORD.DOC would launch the application associated with the .DOC file extension). See the ASSOC and FTYPE commands for how to create these associations from within a command script.
When executing an application that is a 32-bit GUI application, cmd.exe does not wait for the application to terminate before returning to the command prompt. This new behavior does NOT occur if executing within a command script.
When executing a command line whose first token is CMD without an extension or path qualifier, then replaces CMD with the value of the COMSPEC variable, thus avoiding picking up random versions of cmd.exe when you least expect them.
When executing a command line whose first token does NOT contain an extension, then cmd.exe uses the value of the PATHEXT environment variable to determine which extensions to look for and in what order. The default value for the PATHEXT variable is:
.COM;.EXE;.BAT;.CMD
Notice the syntax is the same as the PATH variable, with semicolons separating the different elements.
When executing a command, if there is no match on any extension, then looks to see if the name, without any extension, matches a directory name and if it does, the START command launches the Explorer on that path. If done from the command line, it is the equivalent to doing a CD /D to that path.
 
 
back to top
subst

Associates a path with a drive letter.

SUBST [drive1: [drive2:] path]
SUBST drive1: /D

drive1:
 Specifies a virtual drive to which you want to assign a path.
[drive2:] path  Specifies a physical drive and path you want to assign to a
 virtual drive.
/D  Deletes a substituted (virtual) drive.

back to top
time

Displays or sets the system time.

TIME [time]

Type TIME with no parameters to display the current time setting and a prompt for a new one. Press ENTER to keep the same time.
If Command Extensions are enabled the TIME command supports the /T switch which tells the command to just output the current time, without prompting for a new time.
 
back to top
title

Sets the window title for the command prompt window.

TITLE [string]

string
 Specifies the title for the command prompt window.
 
back to top
tree

Graphically displays the directory structure of a drive or path.

TREE [drive:][path] [/F] [/A]

/F
 Display the names of the files in each directory.
/A  Use ASCII instead of extended characters.
 
back to top
type

Displays the contents of a text file or files.

TYPE [drive:] [path] filename
 


back to top
ver

Displays the Windows NT version.

VER


back to top
verify

Tells cmd.exe whether to verify that your files are written correctly to a disk.

VERIFY [ON | OFF]

Type VERIFY without a parameter to display the current VERIFY setting.


back to top
vol

Displays the disk volume label and serial number, if they exist.

VOL [drive:]


back to top
xcopy

Copies files and directory trees.

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]

 [/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U]

 [/K] [/N] [/Z]

source
 Specifies the file(s) to copy.
destination  Specifies the location and/or name of new files.
/A  Copies files with the archive attribute set, doesn't change the
 attribute.
/M  Copies files with the archive attribute set, turns off the archive
 attribute.
/D:m-d-y  Copies files changed on or after the specified date. If no date is
 given, copies only those files whose source time is newer than the
 destination time.
/P  Prompts you before creating each destination file.
/S  Copies directories and subdirectories except empty ones.
/E  Copies directories and subdirectories, including empty ones. Same as
/S /E. May be used to modify /T.
/V  Verifies each new file.
/W  Prompts you to press a key before copying.
/C  Continues copying even if errors occur.
/I  If destination does not exist and copying more than one file, assumes
 that destination must be a directory.
/Q  Does not display file names while copying.
/F  Displays full source and destination file names while copying.
/L  Displays files that would be copied.
/H  Copies hidden and system files also.
/R  Overwrites read-only files.
/T  Creates directory structure, but does not copy files. Does not include
 empty directories or subdirectories. /T /E includes empty directories
 and subdirectories.
/U  Copies only files that already exist in destination.
/K  Copies attributes. Normal XCOPY will reset read-only attributes.
/N  Copies using the generated short names.
/Z  Copies networked files in restartable mode.