
Say goodbye to the MS-DOS command prompt - CrankyBear
http://www.computerworld.com/article/3147668/operating-systems/say-goodbye-to-the-ms-dos-command-prompt.html
======
Silhouette
I have very mixed feelings about this.

On the one hand, the Command Prompt in Windows has always been something of a
second-class citizen, a poor imitation of the power user shells of the
UNIX/Linux world. It was long overdue for an upgrade. PowerShell is, no doubt,
more powerful, and for professional Windows sysadmins with the time and
inclination to learn it, it's probably been the default for a long time.

On the other hand, there's a reason the traditional command prompt and batch
files have lasted so long: for a lot of basic purposes, they work just fine,
and many people know how to use them. Among those who _aren 't_ professional
Windows sysadmins, I know very few people who seem to use Powershell at all,
probably not helped by the fact that it has some of the worst documentation in
computing history and is far from intuitive for anyone familiar with either
the traditional Windows command prompt or something like bash.

I'm still not at all comfortable with the idea that with Windows 10 you'll
essentially just wake up one morning and find something you've been using
happily for literally decades isn't there any more and pressing the keyboard
shortcut that got you want you wanted last night doesn't do so this morning.
Regardless of whether this particular change can be turned off, at least for
now, this still seems a very dangerous policy in general.

~~~
WorldMaker
First of all, all that is happening is the default is swapping. You can still
swap back if you really must.

Also, PowerShell runs .bat batch files just fine, for those that were
wondering.

I don't think PowerShell has any worse documentation than bash: most commands
support -? and/or -h just like they do everywhere else.

Or there might be extra help for a command in Get-Help, which is very similar
to unix man (and aliased to it if you have the have the habit to just man
commandname).

Don't know the command you want? Get-Command lists them and the you can Get-
Help about it.

Beyond that there's definitely a learning curve to get used to the common
verbs and some subtle syntax differences to bash, but that's not much
different from learning the differences between bash and zsh or csh or
emacs... On this front I can point you to a lot worse documentation than
PowerShell's in the deeper, weirder *nix command shells.

Edit: Removed asterisk interpreted as emphasis.

~~~
Silhouette
_First of all, all that is happening is the default is swapping. You can still
swap back if you really must._

Sure, but that's not really my point. No-one who is seeing the default swap
had much if any say over whether the option to swap back would be provided,
nor will many if any of those people have any say over whether and when the
alternative will be deemed too much trouble to maintain and removed entirely.

I remember painfully well my first experience with Powershell, back when it
was new. I thought I'd give it a try, so I opened a shell window and tried a
few commands.

What happened next went something like the following. I'm actually reproducing
this as I type this post, following roughly the same process using Powershell
as installed on my Windows PC today, just to make sure I'm not talking
complete rubbish here and it really is as bad as I remember...

    
    
        dir
    

OK, great, I still get a directory listing. I'm in my home directory and lots
of the useful subdirectories are hidden by default. No problem:

    
    
        dir /a
    

What, why is that an error? Oh, this isn't really dir as I know it, and / is
now a path separator, reversing two decades of Windows using \ for that
purpose. OK, maybe it's more like bash then?

    
    
        dir --help
    

No, that's an error as well. OK, let's try something else:

    
    
        help
    

If you've ever tried that in Powershell, you'll be aware that it produces one
of the most unhelpful help pages ever written. Even a simple section about
what to read to learn about Powershell is full of jargon that no-one who
didn't already know Powershell would necessarily understand.

What is a cmdlet? Is that like a batch file?

Where did all this stuff about properties and methods on objects come from?
I'm trying to get a directory listing, not write a GUI in Java!

At least it finally tells me the magic syntax to get help on any given
command: -?

    
    
        dir -?
    

Wait, what? I asked about dir, and it's telling me something about Get-
ChildItem. Except it's not really, because all it tells me is some syntax for
something I didn't ask about, with no indication of why it's relevant or what
any of the options (I'm assuming) actually do. But after a screenful of more
jargon I don't understand, it says something about how to get more
information, so let's try that.

Oh, I still can't copy and paste like most UIs had since the 1990s. OK, back
to typing out tedious commands full of variations on what I actually want to
ask about the old-fashioned way:

    
    
        get-help Get-ChildItem -detailed
    

Oh, look! Several screens of further jargon, which apparently still don't
support paging like any decent CLI since the 1990s either!

But at least it tells me that what I want is the -Force option. Maybe. Because
even the brief description of that option manages to use jargon I don't know
and refer me to yet more help pages. And why on earth would an option that is
normally used to override confirmation prompts when doing something
destructive apply to a dir command?

Somewhere around this point, if memory serves, I stopped, presumably fearing
that I would lose the will to live if I carried on much longer.

But again, I wasn't particularly trying to make the point here that Powershell
is a textbook example of how not to do UI design, though it is and I might
have been. My real point was that taking a tool that has been useful for 20
years and replacing it literally overnight and without prompting with a
radically different tool that is also demonstrably inferior in some ways is a
really, really dumb idea.

~~~
WorldMaker
It's not changing overnight. It's changing in preview builds to get feedback
from power users who asked for immediate changes as they happen. That change
might eventually make its way into the Creator's Update several months from
now and power users will definitely be forewarned by then.

A learning curve does not make anything "demonstrably inferior" and a lot of
the jargon you felt like outright ignoring can lead to rabbit holes where
PowerShell really shines, if you let it.

For the most part you've got a transcript equivalent to a DOS user switching
to unix and having a hard time figuring out that dir is now ls and ls has a
bunch of weird flags and hidden files start with dots for some weird reason...
It's not really a demonstration of "inferiority" but a travelogue of
ignorance.

You complain about the help system of PowerShell, but when was the last time
you even tried HELP.EXE for CMD help? If you want to talk about terrible
documentation, there's a field day to be had in HELP.EXE. I remember trying to
learn from DOS 5.x's HELP.EXE which was even worse back then.

I'm sorry you don't feel like learning something new, but PowerShell is better
than CMD if you give it a chance and maybe not glossing over so much of the
jargon?

«What is a cmdlet? Is that like a batch file?»

For the most part yes, a cmdlet is like a batch file but more powerful.

«Where did all this stuff about properties and methods on objects come from?
I'm trying to get a directory listing, not write a GUI in Java!»

That's where the magic in PowerShell lies, that's the rabbit hole to follow if
you want to start seeing what makes PowerShell special.

~~~
Silhouette
I'm sorry, but I think we're still talking at cross-purposes here.

It is a fact that Microsoft can and do roll out significant changes to Windows
10 literally overnight and without giving many users the option to decline
them.

It is reasonable to assume from the fact that this discussion was relevant at
all that Microsoft are at least considering doing that with this change, but
even if they don't, the general point still stands.

Whether or not Powershell is more powerful than the command prompt once
learned is still not the point. The point is that it is _different_ , and if
this change goes ahead, something that worked yesterday in the same way as it
had for literally decades will suddenly not work the same way tomorrow.

As a final note, you seem to have confused my description of my initial
experience with the then-new Powershell something like a decade ago with my
current situation, but again, that really isn't the point anyway. The point is
that forcing such a change on users could create at best a good deal of
confusion and frustration among existing users who _already know_ the current
system they've been using for a long time. The comparison isn't between
learning Powershell and learning cmd or bash, it's between learning Powershell
and not having to do anything at all. The poor documentation and general
clumsiness and verbosity of Powershell are merely rubbing salt in the wound at
that point.

------
icc97
I'm really sad about this. I grew up with useless crappy windows games and
messing around in the DOS prompt.

I love the fact that I'm still using it.

I know batch file programming is ridiculous, some of the most mental looking
code I've written is part of that. But I get some masochistic pleasure from
using it, I've automated tons of my work through it. Much cudos goes to Rob
van der Woude's batch scripting site [1].

But finally, _finally_ they did some really nice updates to the DOS prompt in
Windows 10 so that it fills the screen properly and line wraps correctly.

In the DOS prompt I've got:

\- SSH (natively compiled)

\- Pretty much all the linux command tools I want grep, cat, sed etc (thanks
be to Git SCM and all it's precursors e.g. GOW)

\- Vim

\- Lovely consolatas mono font - which gives lovely crisp font rendering -
better than any of the DOS 'replacements'

\- Rather lovely Solarized dark colours

\- GNU Readline [2] (hitting tab gets you a slash at the end of the directory,
yay!)

\- Chocolatey package management

Seriously, the DOS prompt can be quite lovely to use [3]

I know Powershell is all shiny and new with added .net up it's arse, but I
don't need it and it's not what I was typing in as I grew up. I even went
about changing all my .bat files to .cmd files to be ultra modern this year.

I think there'd be uproar in the Linux world if bash was 'put out to pasture'
(reminds me of the horse in Animal Farm) as is happening to DOS.

    
    
      [1]: http://www.robvanderwoude.com/
      [2]: http://mridgers.github.io/clink/
      [3]: https://dl.dropboxusercontent.com/u/7765571/images/screenshots/dos.png

~~~
voycey
Care to share what tools you installed all of that with? I think you can still
do all of that in Powershell...

~~~
icc97
I'm sure you can do it all with Powershell, I just don't want to switch :)

But as for getting it all installed, it's pretty easy:

1\. Chocolatey [1]

2\. Git chocolatey package [2] (gives GNU tools, SSH - there is also a
separate OpenSSH package from MS [6])

3\. Vim chocolatey package [3]

4\. Consolas font (just change the DOS window properties)

5\. Solarized colours [4]

6\. GNU Readline (clink) [5]

    
    
      [1]: https://chocolatey.org/install
      [2]: https://chocolatey.org/packages/git
      [3]: https://chocolatey.org/packages/vim
      [4]: https://github.com/neilpa/cmd-colors-solarized/
      [5]: http://mridgers.github.io/clink/
      [6]: https://chocolatey.org/packages/openssh
    

Edit: fixed formatting, added OpenSSH package link

~~~
voycey
Yeah I think I need to get on board with this Choco thing - I looked at it a
few years back but its app support was poor at best!

~~~
icc97
I use it for pretty much everything - I forgot to say, even clink I mentioned
above I installed via Chocolatey. You do occasionally have issues that the
Chocolatey package isn't up to date, but it's mostly pretty good. Here's the
list of packages I installed with it:

    
    
      7zip 16.02
      7zip.install 16.02
      autohotkey.portable 1.1.24.00
      chocolatey 0.9.10.3
      chocolatey-uninstall.extension 1.1.0
      chromium 54.0.2801.0
      clink 0.4.7
      DotNet3.5 3.5.20160716
      dropbox 5.4.24
      Emacs 24.5.0.20150611
      evince 2.32.0.145
      f.lux 3.10
      FBReader 0.12.10.1
      git 2.9.0
      git.install 2.9.0
      googledrive 1.29.2074.1528
      greenshot 1.2.8.12
      haskell-stack 1.1.2
      keepass 2.34
      keepass.install 2.34
      keepass-keepasshttp 1.8.4.1
      libreoffice 5.1.4
      LightTable 0.8.1
      mediamonkey 4.1.12
      meld 3.16.0
      mm-choco.extension 0.0.1
      MsSqlServer2012Express 11.00.3000.20140928
      nodejs 6.3.0
      nodejs.install 6.3.0
      nsis-unicode 2.46.5
      Octave 3.6.4
      openvpn 2.3.11
      paint.net 4.0.6
      pandoc 1.17.1
      poedit 1.8.7
      postgresql-9.3 9.3.5.3

------
andreiw
Except it is not the MS-DOS prompt (unless you actually ran command.com, via
the NTVDM). It may look like a duck, quack like a duck (sort of), but it
really was just another Win32 (albeit console) program.

~~~
theandrewbailey
Exactly. It's not DOS, it's another interface Windows. It tell you so on it's
first line! Everything you run in it won't print "This program cannot be run
in DOS mode." and exit.

------
voycey
I just find everything so convoluted in Powershell, don't get me wrong its
much less painful than using cmd but compared to a bash shell I find myself
tearing my hair out! I think things would be easier if I was a .NET coder but
im not and I miss the basic simplicity of things like `where` from bash vs
having to create an entire script to just find executables on the path!

~~~
flukus
I'm a .net coder, it's no better. I still use cygwin.

~~~
voycey
Check out the new Ubuntu Bash thing on Windows 10, its pretty impressive for
most things and doesnt have the idiosyncrasies that Cygwin has :)

~~~
flukus
I have, I stick with cygwin because it has better interoperability with the
rest of windows. Ubuntu bash is more like using a virtual machine.

------
cestith
Thankfully FreeDOS and DOSBox exist, so all those hundreds of batch files each
of us old DOS hands has lying around won't go to complete waste.

