doskey
Calls Doskey.exe, which recalls previously entered command-line commands, edits command lines, and creates macros.
Syntax
Parameters
Remarks
- Using Doskey.exe
Doskey.exe is always available for all character-based, interactive programs (such as program debuggers or file transfer programs), and maintains a command history buffer and macros for each program that it starts. You cannot use doskey command-line options from a program. You must run doskey command-line options before you start a program. Program key assignments override doskey key assignments.
- Recalling a command
To recall a command, you can use any of the following keys after starting Doskey.exe. If you use Doskey.exe within a program, that program's key assignments take precedence.
Key Description UP ARROW Recalls the command you used before the one displayed. DOWN ARROW Recalls the command you used after the one displayed. PAGE UP Recalls the oldest command you used in the current session. PAGE DOWN Recalls the most recent command you used. - Editing the command line
With Doskey.exe, you can edit the current command line. If you use Doskey.exe within a program, that program's key assignments take precedence and some Doskey.exe editing keys might not work.
The following table lists doskey editing keys and their functions.
Key or key combination Description LEFT ARROW Moves the insertion point back one character. RIGHT ARROW Moves the insertion point forward one character. CTRL+LEFT ARROW Moves the insertion point back one word. CTRL+RIGHT ARROW Moves the insertion point forward one word. HOME Moves the insertion point to the beginning of the line. END Moves the insertion point to the end of the line. ESC Clears the command from the display. F1 Copies one character from the same column in the template to the same column in the Command Prompt window. (The template is a memory buffer that holds the last command you typed.) F2 Searches forward in the template for the next key you type after pressing F2. Doskey.exe inserts the text from the template up to, but not including, the character you specify. F3 Copies the remainder of the template to the command line. Doskey.exe begins copying characters from the position in the template that corresponds to the position indicated by the insertion point on the command line. F4 Deletes characters from the current insertion point position up to a character you specify. To use this editing key, press F4 and type a character. Doskey.exe deletes the characters from the current insertion point position to the first letter specified. F5 Copies the template into the current command line. F6 Places an end-of-file character (CTRL+Z) at the current insertion point position. F7 Displays all commands for this program stored in memory in a dialog box. Use the UP ARROW key and the DOWN ARROW key to select the command you want, and press ENTER to run the command. You can also note the sequential number in front of the command and use this number in conjunction with the F9 key. ALT+F7 Deletes all commands stored in memory for the current history buffer. F8 Displays all commands in the history buffer that start with the characters in the current command. F9 Prompts you for a history buffer command number, then displays the command associated with the number you specify. Press ENTER to run the command. To display all the numbers and their associated commands, press F7. ALT+F10 Deletes all macro definitions. -
Using doskey within a program
Certain character-based, interactive programs, such as program debuggers or file transfer programs (FTP), automatically use Doskey.exe. To use Doskey.exe, a program must be a console process and use buffered input. Program key assignments override doskey key assignments. For example, if the program uses the F7 key for some function, you cannot get a doskey command history in a pop-up window.
With Doskey.exe you can maintain a command history for each program you start, repeat and edit previous commands at the program's prompt, and start doskey macros created for the program. If you exit and then restart a program from the same Command Prompt window, the command history from the previous program session is available.
You must run Doskey.exe before you start a program. You cannot use doskey command-line options from a program's command prompt, even if the program has a shell command.
If you want to customize how Doskey.exe works with a program and create doskey macros for that program, you can create a batch program that modifies Doskey.exe and starts the program.
- Specifying a default insert mode
If you press the INSERT key, you can type text on the doskey command line in the middle of old text without replacing the old text. However, after you press ENTER, Doskey.exe returns your keyboard to replace mode. You must press INSERT again to return to insert mode.
Use /insert to switch your keyboard to insert mode each time you press ENTER. Your keyboard effectively remains in insert mode until you use /overstrike. You can temporarily return to replace mode by pressing the INSERT key, but after you press ENTER, Doskey.exe returns your keyboard to insert mode.
The insertion point changes shape when you use the INSERT key to change from one mode to the other.
- Creating a macro
You can use Doskey.exe to create macros that carry out one or more commands. The following table lists special characters you can use to control command operations when you define a macro.
Character Description $G or $g Redirects output. Use either of these special characters to send output to a device or a file instead of to the screen. This character is equivalent to the redirection symbol for output (>). $G$G or $g$g Appends output to the end of a file. Use either of these special double characters to append output to an existing file instead of replacing the data in the file. These double characters are equivalent to the append redirection symbol for output (>>). $L or $l Redirects input. Use either of these special characters to read input from a device or a file instead of from the keyboard. This character is equivalent to the redirection symbol for input (<). $B or $b Sends macro output to a command. These special characters are equivalent to using the pipe (|) on a command line. $T or $t Separates commands. Use either of these special characters to separate commands when you create macros or type commands on the doskey command line. These special characters are equivalent to using the ampersand (&) on a command line. $$ Specifies the dollar-sign character ($). $1 through $9 Represent any command-line information you want to specify when you run the macro. The special characters $1 through $9 are batch parameters, which make it possible for you to use different data on the command line each time you run the macro. The $1 character in a doskey command is similar to the %1 character in a batch program. $* Represents all the command-line information you want to specify when you type the macro name. The special character $* is a replaceable parameter that is similar to the batch parameters $1 through $9, with one important difference: everything you type on the command line after the macro name is substituted for the $* in the macro. -
Running a doskey macro
To run a macro, type the macro name starting at the first position on the command line. If the macro was defined with $* or any of the batch parameters $1 through $9, use a white space to separate parameters. You cannot run a doskey macro from a batch program.
- Creating a macro with the same name as a Windows Server 2003
family command
If you always use a particular command with specific command-line options, you can create a macro that has the same name as the command. To specify whether you want to run the macro or the command, follow these guidelines:
- To run the macro, begin typing the macro name immediately after the command prompt, with no space between the prompt and the command name.
- To run the command, insert one or more white spaces between the command prompt and the command name.
- Deleting a macro
To delete a macro, type:
doskey MacroName=
Examples
doskey /macros > macinit
To use the macros stored in Macinit, type:
doskey /macrofile=macinit
To create a batch program named Tmp.bat that contains recently used commands, type:
doskey /history> tmp.bat
To define a macro with multiple commands, use $t to separate commands, as follows:
doskey tx=cd temp$tdir/w $*
In the preceding example, the TX macro changes the current directory to Temp and then displays a directory listing in wide display format. You can use $* at the end of the macro to append other command-line options to dir when you run TX.
The following macro uses a batch parameter for a new directory name:
doskey mc=md $1$tcd $1
The macro creates a new directory and then changes to it from the current directory.
To use the preceding macro to create and change to a directory named Books, type:
mc books
To create a doskey macro for a program called Ftp.exe, include /exename as follows:
doskey /exename=ftp.exe go=open 172.27.1.100$tmget *.TXT c:\reports$tbye
To use the preceding macro, start ftp. At the ftp prompt, type:
go
Ftp runs the open, mget, and bye commands.
To create a macro that performs a quick and unconditional format of a disk, type:
doskey qf=format $1 /q /u
To format a disk in drive A quickly and unconditionally, type:
qf a:
Formatting legend
Format | Meaning |
Italic | Information that the user must supply |
Bold | Elements that the user must type exactly as shown |
Ellipsis (...) | Parameter that can be repeated several times in a command line |
Between brackets ([]) | Optional items |
Between braces ({}); choices separated by pipe (|). Example: {even|odd} | Set of choices from which the user must choose only one |
Courier font | Code or program output |