Search code examples
command-linecommand-promptcmd

Modify cmd.exe properties using the command prompt


Isn't that nicely recursive?

I've got a portable command prompt on my external drive, and it has a nice .bat file to configure some initial settings, but I'd like more!

Here's what I know how to set from .bat:

  • Colors = (color XY) where x and y are hex digits for the predefined colors
  • Prompt = (prompt $p$g) sets the prompt to "C:\etc\etc >" the default prompt
  • Title = (title "text") sets the window title to "text"
  • Screen Size = (mode con: cols=XX lines=YY) sets the columns and lines size of the window
  • Path = (SET PATH=%~d0\bin;%PATH%) sets up local path to my tools and appends the computer's path

So that's all great. But there are a few settings I can't seem to set from the bat. Like, how would I set these up wihtout using the Properties dialogue:

  • Buffer = not screen size, but the buffer
  • Options like quick edit mode and autocomplete
  • Popup colors
  • Font. And can you use a font on the portable drive, or must it be installed to work?
  • Command history options

Solution

  • Regarding setting the buffer size:

    Using mode con: cols=XX lines=YY sets not only the window (screen) size, but the buffer size too.

    If you specify a size allowed by your system, based on available screen size, you'll see that both window and buffer dimension are set to the same value; .e.g:

    mode con: cols=100 lines=30
    

    results in the following (values are the same):

    • window size: Width=160, Height=78
    • buffer size: Width=160, Height=78

    By contrast, if you specify values that are too large based on the available screen size, you'll see that the window size changes to its maximum, but the buffer size is changed to the values as specified.

    mode con: cols=1600 lines=900
    

    With a screen resolution of 1280x1024, you'll get:

    • window size: Width=160, Height=78
    • buffer size: Width=1600, Height=900