Nov 052014
 

What’s a Command Prompt?

This is the line of text prefixed automatically by the environment to the command you’re writing for an e.g. see below screenshot…

Customizing Command Prompt

How Can I Customize The Command Prompt?

Microsoft provides a built in command named as Prompt. As the name suggests this just help customize the prompt text shown in a command window. See the help for this command…

c:\Windows\System32>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 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 pushed.

$M   Displays the remote name associated with the current drive
letter or the empty string if current drive is not a network
drive.

Some Killer Sample Prompt Commands and Their Output

Please refer above help to figure what every character after the $ mean…

  • Command: prompt ——$G$P$G
    • New Prompt: ——>c:\Windows\System32>
  • Command: c:\Windows\System32>prompt $V$G$P$G
    • New Prompt: Microsoft Windows [Version 6.3.9600]>c:\Windows\System32>
  • Command: c:\Windows\System32>|>prompt $P$G$B$+$G
    • New Prompt: c:\Windows\System32>|>.
      The above prompt adds a ‘+’ sign for every pushd you do and removes the last ‘+’ after a popd. See below…
  • c:\Windows\System32>|>pushd c:\
    c:\>|+>pushd e:\
    e:\>|++>popd
    c:\>|+>popd
    c:\Windows\System32>|>
  • Funky Command:  prompt ╔═════════════════════╗$_║$P:$G$+║$_╚═════════════════════╝$_
    • New Prompt:
      ╔═════════════════════╗
      ║c:\Windows\System32:>║
      ╚═════════════════════╝

This just shows that you can customize the prompt to some extent. Above prompt will be ok if the current directory path is a small one but once it gets bigger you’ll have to adjust the square…

How to Make the Command Prompt Permanent?

Your custom command prompt will stick only for this session of cmd. If you start another instance of a cmd.exe you’ll end up seeing the default value or the one that’s setup elsewhere (as shown below).

So the question is how do we setup a command prompt that stays across sessions? Via the environment variable PROMPT. See below for my case…

Permanently Customizing Command Prompt

My personal favorite prompt is the one set by following command…

PROMPT $P$G$_$$$G

To set this as your prompt you can add an environment variable called PROMPT. Open environment variable window and then add the value as shown below…

Permanently Customizing Command Prompt

So now if you open a cmd instance you should see the following prompt…

Permanently Customizing Command Prompt

How do I revert my changes to the Command Prompt?

Valid question. To revert back to the original prompt, just type in command PROMPT without any arguments. You should see the prompt revert back to default. You might also want to remove the environment variable PROMPT else for next session you’ll again see the prompt you’ve setup.

Sep 242013
 

Default Settings for Command Prompt

The default command prompt setting on Windows is pretty limited. Some limitation that I found while working on the command prompt is as follows…

  • Screen buffer size is very little. This means output of commands like ‘tree’ will not show up entirely in the command prompt. Once you scroll up you’ll not see the whole text. As a workaround you’ll have to redirect output to a text file.
  • Same with horizontal text, the text wraps around once the text touches the horizontal screen limit. I find this behavior annoying since this reduces readability.
  • Color is black and white. Its always cool to have different colors. I normally have dark red as background and white as foreground color.
  • Window size is limited. When you maximize command prompt it will only take half the screen size horizontally.
  • Its so painful to copy and paste. I want this feature to behave as in text editors like notepad. For e.g. just drag to select, instead of right clicking and selecting the “Mark” option.

After Customization of Command Prompt

Its very easy to customize our good old command prompt so that it stores more text vertically as well as horizontally. We can easily give good colors, better height and width etc. After customization this is how my command prompt looks in normal mode.

Command Prompt

Keep an eye on the scrollbar. The scrollbar thumbs are very small in size meaning they can scroll a lot more, which means more text. If you maximize the command prompt it occupies the entire screen as well.

Command Prompt Full Screen

If you look at the above output and the vertical scrollbar, I still have lots of screen buffer. If I scroll up I still see the command’s entire output. Isn’t this cool.

Copying and pasting is easy as well. Drag to select, right click on the selected area to copy and right click again to paste Smile. LOL that’s real cool. The selection is a free selection, always selects as a rectangle. See screenshot below…

Command Prompt with Selected Text

How to Customize Command Prompt

The whole customization lies in the command prompt’s system menu. Click on the dark icon at the far left corner, i.e. the system icon, of command prompt, select “Properties”. You should see a properties dialog popup.

To customize selection, copy, paste behavior check the “Quick edit” checkbox…

Command Prompt Properties Dialog: Options

To customize Font select appropriate fonts on the “Font” tab. This is how mine looks.

Command Prompt Properties Dialog: Font

To customize color, select appropriate colors in the “Colors” tab. This is how mine looks…

Command Prompt Properties Dialog: Colors

Please note there is a screen background and a popup background. Also there is a “Screen Text” and “Popup Text”. Screens stands for command prompt background, while popup stands for popup command dialogs, for e.g. press F7, the command history ‘popup’ window pops up…

Command Prompt Popup Dialog

Now comes my favorite, increasing the screen buffer size, or increasing the text buffer size of command prompt. This setting controls how much text the command prompt can hold. Please select the layout tab in the command prompt..

Command Prompt Properties Dialog: Layout

I’ve set the “Screen buffer Size” field values to high values so that it can hold as much text as possible. You can set your own values based on your preferences.

Hope this helps you in some way. Smile