For those of you who haven't replaced your standard Windows cmd shell functionality with "Console", do so now!
If you don't know what Console (a.k.a. Console2) is, here's a quick overview:
- Tabbed shell environment
- Alpha transparency
- Configurable background styles
- Configurable fonts
Once you switch to Console, you won't want to go back to plain ol' cmd.exe. It is for this reason that I am writing this post.
Creating Development Shells
When you install the .NET 3.0 Framework, Visual Studio 2003, 2005, etc, you often get command shell shortcuts that let you quickly access command-line utilities specific to the environment. Because these shortcuts generally use cmd.exe as the shell, you are limited to the functionality of that shell. Wouldn't it be nice to get all of the functionality of Console in these environments?
There are a couple ways that we can accomplish this:
-
Change the command shell shortcuts to use Console instead of cmd.exe, or
-
Create a new tab for each shell within Console itself.
Shortcut method
Let's use the .NET 3.0 Framework Command Shell as an example. The original shortcut is as follows:
cmd.exe /E:ON /V:ON /T:0E /K "C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin\SetEnv.Cmd"
To change this shortcut to use Console, we would change the target command (cmd.exe) to the path to Console.exe. To tell Console that we want to run a command on startup, we use the "-r" parameter. The "-r" parameter lets you specify which command shell within Console that you wish to execute (I'm using the default here, which I've set to cmd.exe in Console's settings dialog). The resulting command is:
"C:\Program Files\Console2\Console.exe" -r "/E:ON /V:ON /T:0E /K \"C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin\SetEnv.Cmd\""
There's nothing really out of the ordinary here except the escape sequence used for quotes inside the -r parameter's argument. Because the -r parameter's argument must be enclosed in quotes itself, any quotes used within the argument must use escaped quotation marks (\").
Tab method
If you'd like to always be able to access your various shells right within Console, you can setup individual tabs to startup for a specific shell. In the case of our .NET 3.0 shell, we would create a tab like so:

The Shell textbox reads:
c:\windows\system32\cmd.exe /E:ON /V:ON /T:0E /K "C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin\SetEnv.Cmd"
You can then setup a Hotkey to open this specific tab in Console.

Note: the order of the tabs added on the Tabs screen correspond to the order indicated in the hotkey assignment area.
Other shells
The great thing about Console is that you can setup any other shells available to Windows. For example, you could create a tab for Powershell, cygwin, etc.
Play around with Console and I'm sure you'll agree that it is a great addition to your toolbox!