The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,860 other subscribers

Windows shells: a bit of history

Posted by jpluimers on 2014/06/18

I’ve a long history in DOS/Windows 9x COMMAND.COM and Windows cmd.exe shell programming.

The switch to PowerShell is steep, but for me it is worth it: it has so much more functionality than cmd.exe, and taps right into the .NET ECO system.

If you look for something intermediate, you might want to consider TCC. Formerly TCC was known as 4NT, which has its roots in 4DOS (I totally loved 4DOS back when cmd wasn’t there yet).

A small overview:

  • COMMAND.COM
    The original command shell from DOS and Windows 9x/Me.
    Limited commands.
    Distinction between batch and interactive mode.
    Batch mode has %% for loop indexes, and supports labels.
    Used to be a domain with a fake screenshot.
    Still ships with x86 editions of Windows NT based Windows versions for full DOS compatibility in the NTVDM.
  • cmd.exe
    Shell introduced with the OS/2, the NT versions of Windows (first in Windows NT 3.1) and Windows CE as a successor of COMMAND.COM.
    Adds lots of extensions and many more commands.
    Allows redirection of stderr.
    Most commands documented at SS64.com.
  • 4DOS
    Plug in replacement for COMMAND.COM that allowed many more commands, command-line editing and history, filename completion, online help (later also added to DOS), color highlighting od directory listing, cutting down DOS 640k memory usage by paging to disk and supporting EMS and XMS, key stacker and much more.
    Sometimes bundled as NDOS.
    Now sort of Open Source.
  • 4OS2
    4DOS extensions for the cmd.exe of OS/2. Later evolved into 4NT.
  • 4NT later renamed into Take Command Console when being merged with the Take Command GUI command-line interpreter.
    Added most of the 4DOS/4OS2 features.
    Extra support for internet protocols like FTP, HTTP and Jabber.
    Allows debugging and syntax-highlighted editing of batch files.
    Supports plugins.
    Available as a free TCC/LE, and a payed TCC edition which add functions, and has even more features.
  • PowerShell
    Shell with a whole new idiom: task oriented in stead of command oriented, and based on the .NET framework.
    Ships with Windows 7 and up, and Windows Server 2008 R2 and up.
    Based on cmdlets which are similar – but richer – than commands.
    Supports an object pipeline which is much richer than the text pipeline used by most other shells of which the last cmdlet output will be represented on the screen.
    Allows hosting in a managed environment, which opened up a lot of environments including Visual Studio through PowerConsole.
    Most PowerShell 2.0 commands documented at SS64.com.

Note that a shell is different from a console.

TCC includes both, and PowerShell as an ISE. More about consoles later.

–jeroen

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.