This article is more than 1 year old
cmd.exe is dead, long live PowerShell: Microsoft leads aged command-line interpreter out into 'maintenance mode'
'It should not be used for interactive shell work' – Windows Terminal chief
Microsoft senior program manager Rich Turner took to Twitter in recent days to remind everyone that it really is time to move on from Windows' ancient command processor, cmd.exe.
"Cmd is in maintenance mode," said the Windows Terminal and Windows Subsystem for Linux pusher, "it should not be used for interactive shell work."
"PowerShell is the future," he added.
To be fair, cmd has been a little whiffy for a while now. As the original default command line interpreter for the Windows NT (and OS/2) era, it has its roots in the old COMMAND.COM
days of DOS and Windows 95, and provided a way for admins to move their ageing batch files and scripts into a brighter, DOS-free world.
The problem with these bridging technologies is that they tend to stick around. After all, if something is working, why fiddle with it? Certainly, the thought of untangling all those spaghetti-like scripts could induce nausea in even the strongest of constitutions.
Microsoft has long punted an alternative to users in the form of the vastly more capable PowerShell, which appeared in Windows-only form back in 2006 before going cross-platform and open source 10 years later (briefly acquiring the suffix "Core" as it did so).
Many organisations, however, have plenty of legacy cmd scripts still running behind the scenes. The engine running those scripts is now in "maintenance mode", meaning that something pretty major would have to go wrong before anyone in Redmond goes tinkering. Every time a change is made, explained Turner, "something critical breaks".
He added that the team once changed the copyright string "and broke an OEM's production line... for a week."
Ouch.
We'll leave it to our readers to debate the pros and cons of writing a script that depends on the format of a copyright string in order to keep a production line ticking over. It sounds a prime candidate for "Who, Me?" to us.
Turner's pointer to PowerShell is not without its own problems. While PowerShell 7 may be the future, what is currently lurking in the big box of Windows is version 5.1, which, like cmd, is in maintenance mode and has received only the odd fix or three as it waited for the Core incarnation to get closer to parity.
Lee, a 20-year Microsoft veteran and principal software engineer manager, chimed in that the gang "can't update inbox to PS7 until we reconcile the LTS support gap between .NET and Windows".
Until that glorious day arrives, Windows will continue to endure a maintenance-only PowerShell as well as cmd. And while Microsoft would dearly like to see the back of cmd, we fear it might be some time before anyone hammers home that final nail.
Tech aimed at backwards compatibility tends to linger like an airborne emission in an elevator.
We'll leave the final word to Turner himself: "It shouldn't have lived so long." ®