20

Where are the default settings saved for the Command Prompt defaults? Are they stored in the registry somewhere, or in a file?

I would love to make a .reg file to set my default preferences when logging into a machine for the first time.

I'm talking about the default application settings: QuickEdit mode, buffer size, text color, etc.

21

Under HKEY_CURRENT_USER\Console there are some default settings for all consoles and subkeys with individual settings for console programs. You might want to take a look at these settings, especially at QuickEdit, ScreenBufferSize, ScreenColors, etc.

  • 1
    Exactly what I was looking for. – Keltari Dec 3 '13 at 17:09
  • 2
    As this to another question mentions, If you're on Windows 10, the settings are no longer saved in the registry, but only in the .lnk files. (See the answer for the details.) – RobH Feb 15 '16 at 18:01
  • @RobH the defaults are still in Registry, but Properties are in the lnk file in Windows 10. – WesternGun Jun 23 '17 at 11:11
6

Updated Answer in response to edited question

I suggest you create a shortcut for CMD.EXE on your desktop, and edit the properties to get the settings you want. Then copy the shortcut to a portable device like a USB thumb drive, or else a network folder. You should be able to launch the shortcut from any computer and get your desired settings.

Original answer dealing with entirely different settings

I'm aware of four settings that may be controlled by the registry:

  • Auto Run
  • Extensions
  • Delayed Expansion
  • File Name Completion

The registry settings are documented in the built in help, accessed from the command line by typing HELP CMD or CMD /?

Here is an excerpt of the relevant help:

If /D was NOT specified on the command line, then when CMD.EXE starts, it
looks for the following REG_SZ/REG_EXPAND_SZ registry variables, and if
either or both are present, they are executed first.

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

        and/or

    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

Command Extensions are enabled by default.  You may also disable
extensions for a particular invocation by using the /E:OFF switch.  You
can enable or disable extensions for all invocations of CMD.EXE on a
machine and/or user logon session by setting either or both of the
following REG_DWORD values in the registry using REGEDIT.EXE:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensio

        and/or

    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtension

to either 0x1 or 0x0.  The user specific setting takes precedence over
the machine setting.  The command line switches take precedence over the
registry settings.

In a batch file, the SETLOCAL ENABLEEXTENSIONS or DISABLEEXTENSIONS argume
takes precedence over the /E:ON or /E:OFF switch. See SETLOCAL /? for deta

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 commandname /? to view the specifics.

Delayed environment variable expansion is NOT enabled by default.  You
can enable or disable delayed environment variable expansion for a
particular invocation of CMD.EXE with the /V:ON or /V:OFF switch.  You
can enable or disable delayed expansion for all invocations of CMD.EXE on
machine and/or user logon session by setting either or both of the
following REG_DWORD values in the registry using REGEDIT.EXE:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansi

        and/or

    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansio

to either 0x1 or 0x0.  The user specific setting takes precedence over
the machine setting.  The command line switches take precedence over the
registry settings.

In a batch file the SETLOCAL ENABLEDELAYEDEXPANSION or DISABLEDELAYEDEXPAN
arguments takes precedence over the /V:ON or /V:OFF switch. See SETLOCAL /
for details.

If delayed environment variable expansion is enabled, then the exclamation
character can be used to substitute the value of an environment variable
at execution time.

You can enable or disable file name completion for a particular
invocation of CMD.EXE with the /F:ON or /F:OFF switch.  You can enable
or disable completion for all invocations of CMD.EXE on a machine and/or
user logon session by setting either or both of the following REG_DWORD
values in the registry using REGEDIT.EXE:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletion

        and/or

    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionC

with the hex value of a control character to use for a particular
function (e.g.  0x4 is Ctrl-D and 0x6 is Ctrl-F).  The user specific
settings take precedence over the machine settings.  The command line
switches take precedence over the registry settings.

If completion is enabled with the /F:ON switch, the two control
characters used are Ctrl-D for directory name completion and Ctrl-F for
file name completion.  To disable a particular completion character in
the registry, use the value for space (0x20) as it is not a valid
control character.

Completion is invoked when you type either of the two control
characters.  The completion function takes the path string to the left
of the cursor appends a wild card character to it if none is already
present and builds up a list of paths that match.  It then displays the
first matching path.  If no paths match, it just beeps and leaves the
display alone.  Thereafter, repeated pressing of the same control
character will cycle through the list of matching paths.  Pressing the
Shift key with the control character will move through the list
backwards.  If you edit the line in any way and press the control
character again, the saved list of matching paths is discarded and a new
one generated.  The same occurs if you switch between file and directory
name completion.  The only difference between the two control characters
is the file completion character matches both file and directory names,
while the directory completion character only matches directory names.
If file completion is used on any of the built in directory commands
(CD, MD or RD) then directory completion is assumed.

The completion code deals correctly with file names that contain spaces
or other special characters by placing quotes around the matching path.
Also, if you back up, then invoke completion from within a line, the
text to the right of the cursor at the point completion was invoked is
discarded.

The special characters that require quotes are:
     <space>
     &()[]{}^=;!'+,`~
3

This is what I did for Windows 10:

  1. Paste this into Windows Explorer exactly as written:

    %LOCALAPPDATA%\Microsoft\Windows\WinX\Group3\
    
  2. Right click both the "Command Prompt" shortcuts and select "properties"

  3. Editing these tabs will change the default settings for the command prompt:

    • font
    • Layout
    • Colors
    • options

Remember the settings need to be changed for both shortcuts. I'm not sure why there are two. :/

  • This answer does not appear to work on earlier versions of Windows, the question was asked in 2013, so an answer that only works for Windows 10 isn't that helpful to the author. How can I tell this only applies to Windows 10? The location of these settings are clearly for the improve command prompt that exists on Windows 10 due to the WinX in the path. – Ramhound Aug 2 '16 at 2:17
  • 2
    Just because the question was asked in 2013 doesn't mean that the asker hasn't upgraded their OS to Windows 10 since then. Also, this is a really simple answer to the question that will help other people who DO have windows 10 find the default command prompt settings. I don't think my answer is deserving of the -1 you gave it. – Daniel Tonon Aug 2 '16 at 6:18
  • 1
    Voting is annymous for a reason, I don't think I should be attacked personally, for issuing a vote – Ramhound Aug 2 '16 at 6:21
  • The last thing the world needs is another person trying to avoid taking responsibility for THEIR actions. – kreemoweet Jan 27 '17 at 18:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.