I’ve been using the trusty command prompt in Windows, well, forever. Having started my life in IT as a DOS keyboard jockey, it’s been a part of my life that just won’t go away. Lately though, I’ve been looking to teach my command prompt some new tricks. Things like multi-tab interface, easier copy/paste within the window, things of that nature. Here, I’ve tested three command prompt enhancements.
Now, to be fair, there are a metric ton of replacements and enhancemants for the tired, old Windows command prompt. Some are full on shell replacements, while others are simply wrappers over the existing command prompt. In either case, new features are added. Some of the features I look for in a replacement are:
- Multi-tabbed interface
- Ability to plug in multiple shells, such as CygWin or PowerShell
- Confifigurability, such as colors, fonts, etc.
- Windows-like line and block copy operations
Nice to have would be some sort of IDE-like interface, with features such as command completion, command history, path history, etc. Not necessary, but welcome additions. I don’t go in much for feature bloat, or having switches for the sake of having switches. I like my environment clean and simple. Of all the packages I looked at, I narrowed it down to three contenders: Console, PromptPal, and PowerCMD.
All three of these provide for each of the my requirements, with PowerCMD and PromptPal pulling out all the stops for feature sets. There are tons of features in each that I will most likely not use. Further, each of them performed pretty much equally as far as configurability and functionality. If you’re a feature hound, you’ll love PromptPal. The high level of configurability will have you poking and prodding for hours. But once you get all the options set just so, you’ll shouldn’t have to touch them again. All three of the replacements had good configuration options, but PromptPal took it to a new level. BUT, one thing that bothered me was the application error that kept presenting itself whenever the app was closed. Boooo!
PowerCMD was a close second for configuration options. Similar flexibility is there, but takes some snooping around to find the options. And then there is Console. It’s not as configurable as the other two, but rather keeps things simple and clean. There are the basic things you’d expect, and a few other items as well. There is not even an installation program for this wrapper-type enhancement. Simply park it in a directory, add it to your path, and make a shortcut to it. If you don’t know how to do those things, you don’t need a shell enhancement anyway, right?
So, how to decide which of these to use. They all function pretty much the same, and all have the features I am looking for. Hmmmm… a test! I decided to throw a seemingly simple test at each of these packages, a directory listing. Not just any directory listing, though. A recursive directory listing of my “backups” folder, containing 984,731 files in 164,789 directories. Yes, I save everything. The pertinent specs for the test system are:
- Pentium dual-core CPU E5300 @ 2.6 ghz
- 8 GB RAM
- System Drive: 10k RPM 500 GB
- Data drive: 7200 RPM 1 TB
- OS: Windows 8 Professional x64
A simple batch file was built to take note of the time when the directory listing started, perform the listing, then make another note of the time at the end:echo Start Time:%time% > timing.txt dir *.* /s /a echo End Time:%time% >> timing.txt
Pretty straightforward, eh? Just to make sure all was equal, I turned of all disk buffering, as well as disabling power-saving features of the data drive (where the search will take place). Further, each app will run the listing in a window of the same size, just so nobody can claim an advantage or disadvantage due to screen handling. First things first, though. We need a baseline, gathered from the app being replaced, the Windows command prompt. Running the listing in the default Windows command prompt (CMD.EXE) seemed to run pretty briskly, but in reality it completed the task the slowest, with a run time 26 minutes, 23 seconds.
I’ve build a synopsis of each package below, with the timings for each one. Note: PowerCMD does not have a time, since it never completed the test! I tried running the same test three times, and each time it hung between 30-35% completion of the listing. It appears to be doing something (according task manager), but nothing ever presents on-screen, and the program itself goes into “not responding” mode.
Console
Of the three, Console is the simplest. It includes all the basic options such as multi-tabbed interface, multiple shells, and basic configuration options. Clean and easy to use, this shell wrapper gets the job done with no-nonsense. Cost: $0.00 (open source) Test Runtime: 1 minute, 50 seconds Pros:
- Free
- Simple to Configure
- tabbed interface
- session saving
- Plug in any shell, eh: CygWin, PowerShell, Visual Studio, etc.
Cons:
- Choppy performance
- No install package, must be manually installed.
PowerCMD
Lots of options here, but can be a bit confusing to the user, if they’re not into twiddling tons of settings. PowerCMD seemed a bit dodgy when working with large datasets, as evidenced by its inability to complete the directory listing test. Cost: $30.00 (free trial available) Test Runtime: N/A – could not complete
Pros:
- Searchable windows
- tabbed interface
- log-to-file functionality
- auto-completion
- Windows Explorer Integration
- Session saving
Cons:
- initial interface kind of cluttered
- *very* sluggish performance when window contents go over ~10000 lines
PromptPal
PrompPal is a great package. Screen updates can be a bit sluggish if you’ve been working in it for a couple hours, though. This was evidenced in the directory listing test as well. One of the other niggling things that bothered me was the choice of font for the first run. For users who utlize high resolution screens, the choice of 8 point Courier makes the user have go in to the configuration, in order to simply see the text within the console. This app also suffered from the presentation of an Application Error when closing, every time. Yikes! We don’t need no steenkin’ errors! Cost: $29.99 (free trial available) Test Runtime: 2 minutes, 17 seconds
Pros:
- Highly configurable
- Command Completion
- Windows version of *nix TAIL command thrown in
- Windows Explorer Integration
- Command and path history
Cons:
- *very* sluggish performance when window contents go over ~33000 – 35000 lines
- Seems a bit unstable;Application Error presents when closing the app
- Command history/auto-complete gets in the way sometimes
After checking out these three packages, I am kind of leaning towards Console, for a couple reasons.
- Open source – can be a good thing (free!), but can be a bad thing (no real support other than community based)
- Stability – consistent update of display during long operations, and no errors presented
- Simplicity – Has the options that I am looking for, without a pile of options I will never use
Note that the conclusions I’ve reached above are based on a short amount of time working with the applications, approximately 8 hours each. I’ll continue working with all three of these apps over the next 20 or so days, and will post an update below, with any new findings. Have you replaced your shell? What do you use? What do you look for in a replacement?