(I’ve received several emails over the past week pointing out that I neglected to start this console replacement series by comparing Take Command with the standard Windows console. So here’s Part Zero!)
Command line apps are executed by the Windows console manager, which runs them in a bare-bones window. The console manager and CMD (the default Windows command processor) were introduced in Windows NT 3.1 in 1993. While there have been some underlying architectural changes, the UI hasn’t changed significantly since then. The Windows console manager numerous shortcomings include:
- Slow
- No tabbed windows option
- No toolbars
- No status bar
- No help
- No save or print features
- Clumsy and limited cut and paste options
- Ditto for the search options
- Bad-to-nonexistent drag & drop capabilities (this is marginally better in Windows 7)
- Awkward resizing
- Not very configurable
- No themes
- Slooooooowwwww (did I mention that already?)
Rewriting the Windows console manager itself was out of the question (for one thing, Microsoft has neglected to document it or any of its APIs). But there have been several third-party attempts to wrap up the Windows console and hide it away, to improve the user interface and/or functionality (including our own Take Command and TCC).
First look at the standard Windows console:
It’s a bit … stark. After 19 years, you’d think that Microsoft could have come up with something a bit more appealing! There are a handful of configuration options available by clicking on the icon on the title bar and selecting “Properties”, but nothing to solve the fundamental limitations I listed above.
Now let’s take a look at the Take Command window. (The Take Command Explorer-style Folder and List View windows, and the common Command Input window are set to Autohide in order to show a more straightforward comparison with the Windows console window.)
Take Command solves all of the Windows console limitations listed above, and a few thousand others we don’t have room to detail here. (For full details, see our online help.)
Let’s look at a few of the Take Command features that aren’t available in the standard Windows console (or the standard Windows command interpreter CMD). And note the speed comparison — Take Command displays output from Windows command line applications twice as fast as the standard Windows console.
Features | Take Command | Windows |
Price (single new copy) | $99.95 | Included |
Tabbed Windows UI | ||
Multiple tabbed windows for console applications | ![]() | |
Run simple GUI apps in tabs | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Customize menu accelerator keys | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Customize tabs location (top/bottom/left/right) | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Multiple display themes | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Horizontal / vertical tab groups | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Attach and detach console windows | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Optional command input window | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Cut and paste block and/or line selection | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Continuously variable transparency option | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Integrated GUI file explorer | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
User-defined startup tabs | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Programmable tabbed toolbar | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Configurable status bar | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Full text search in tabbed console windows | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Context-sensitive help for all commands and variables | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
32-bit and 64-bit versions | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Display Speed | Take Command | Windows |
dir /s c:\windows (in seconds) – Windows console: 38.5 | 19.5 | 38.5 |
Command Prompt | Take Command | Windows (CMD) |
GUI IDE w/ batch file debugger | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Aliases (command and directory) | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Regular Expressions in filenames | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Wildcards in pathnames and/or filenames | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Enhanced command line editor | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Enhanced filename completion | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
GDirectory Navigation | ![]() ![]() | |
ANSI X3.64 text output | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Built in batch file editor | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Direct FTP / HTTP file access (including SSL & SSH) | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Network file system access (OpenAFS) | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Active Scripting (Perl, Python, VBSscript, Javascript) | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |
Scripting Language | Take Command | Windows (CMD) |
Internal Commands | 182 | 34 * |
Internal Variables | 177 | 6 * |
Internal Functions | 291 | 0 * |
*Windows includes CMD, a (very) minimal command interpreter.
Next time: Comparing Take Command and Console (sometimes called Console2).
I enjoyed reading all of your console/terminal comparison and a great way to look at the environment your product operates in and where improvements can be made.
Along those lines, it I would love to see a breakdown comparison of Microsoft PowerShell and Take Command. “…After 19 years…” as you pose the statement, PowerShell is the answer, as it is the go forward solution from Microsoft. It was only released ~6 years ago and we know that any adoption of Microsoft technology is slow (*cough* IE 6 *cough*)
I work for a Fortune 500 company and while it’s been slow to adopt, over the last 2-3 years, PowerShell is becoming the standardized tool for any new console based scripting. I would estimate from my role and research that near the CIO level this is consistent pattern in terms of technology adoption for large deployments of Windows environment.
That being said, given the steep learning curve and closer resemblance to programming, it seems like a great opportunity for someone to come in and abstract/simplify this tool and interface.
I would also consider that PowerShell v2 and PowerShell v3 may warrant separate column comparison because of the sheer number of features and changes that come with v3.
PowerShell Ref
http://technet.microsoft.com/en-us/library/bb978526.aspx
http://en.wikipedia.org/wiki/Windows_PowerShell
PowerShell adds a lot of scripting power, but unfortunately it does absolutely nothing for the Windows console usability (which is the focus of these comparisons). You’re stuck with the same wretched 20+ year old console window, with all the limitations listed above. The only place PowerShell provides any additional capabilities is in the scripting language (the last three lines in the tables above).
I’m planning to do comparisons of the command shells soon (CMD, PowerShell, bash, TCC, etc.)
To your point above, I really, really wish you guys could build a TCC version that was Powershell compatible, but still had all of the usability enhancements. I get SO used to ‘list’ for example it’s totally automatic. I’ve been using so long 4NT is burned into my brain 🙂
== John ==