The Command Prompt or CMD has been part of the Windows ecosystem for as long as I can remember. PowerShell, on the other hand, is a more advanced version of the command line tool which was added in Windows 7. In fact, it is the default app in Windows 10 but you can change that in the settings. So, how are these two different and which one should you use moving forward?
PowerShell vs Command Prompt
Here is the short answer. PowerShell is the future and will be replacing the Command Prompt one day. You better get used to it. Microsoft has sent a signal by making it the default choice in Windows 10. But that means PowerShell is also more powerful and more advanced version of the two command-line tool.
Did you know CMD was launched in 1981 while PowerShell was launched 25 years later in 2006? Now you do.
Let’s find out how.
Also Read: How to Enable Virtualization on Windows 10
How PowerShell Is Superior
It comes with a blue background instead of the iconic black. Convinced? What else do you want to know?
The commands in PowerShell differ from those in the CMD. PowerShell commands are known as cmdlets which you can use to execute and even automate system-level tasks. These administration tasks can’t be managed via CMD.
Microsoft took a leaf out of Linux and decided to use pipes. Linux command line tools are the most powerful in the world and Linux ecosystem is famous for using them every opportunity they get. PowerShell will use pipes allowing you to execute a series of commands. Here is how it works.
You execute a command using a cmdlet and the output of that cmdlet will be the input of another cmdlet which will then use the result to execute another command in the pipeline. This will allow you to execute multiple commands using the same data set and parameters and manipulate it the way you want. Again, not possible in CMD which suddenly looks humble and ancient.
In fact, PowerShell is one step ahead of Linux where it can not only send text but also objects via the pipes. Microsoft designed PowerShell such that you can pipe pretty much anything because pretty much everything is an object in PowerShell unlike in CMD.
Working with more complex forms of data is just one of the few things you can achieve inside PowerShell. It also acts as a scripting environment where you can create and execute small but complex scripts using a programming language. You can then use these scripts over and over again to automate certain tasks with PowerShell cmdlets. This will help admin guys/girls to save time and focus on more pressing issues.
Compare this with Command Prompt which was mostly used in DOS environment. It’s a legacy command-line tool that is still working but not future-proof. Most of the DOS commands are obsolete and no longer required. The ones which are needed can be executed in PowerShell which is backward compatible.
When to Use PowerShell and How
Microsoft hasn’t made any announcements as to when and how CMD will be discontinued. It is here to stay for the foreseeable future but eventually, it will have to go in my opinion. For now, you can use it to run common internet and other troubleshooting commands like ipconfig.
Someone at Microsoft has compiled a long list of basic commands that you can run in PowerShell. I recommend you go through the list to understand what you can do with this new command-line environment. These should be enough to get you started on your way to working with PowerShell. A must for system administrators.
CMD Commands in PowerShell
You can run pretty much all CMD commands in PowerShell, however, there are notable differences in the commands themselves. Fortunately, it is easy to find replacements.
Let’s take an example. Say, you want to run the cd command that will help you change the directory. In CMD, the command is cd while in PowerShell, it is set-location. This is called an alias and there is a dedicated cmdlet to find CMD aliases in PowerShell.
Open PowerShell and give the below command to find out the ‘cd’ equivalent cmdlet of it.
Using the get-alias command, I was able to find both cd and dir command substitute but not the ipconfig which means it works in PowerShell too. You can test it right now. This way, you can easily find CMD commands that you want to run inside PowerShell but don’t know the cmdlets of.
Note that you can also create your own aliases in PowerShell for different cmdlets. This will help you remember these cmdlets better as the default names are often unintuitive and difficult to remember.
Wrapping Up: PowerShell vs Command Prompt
PowerShell is the future and the sooner you begin to use this advanced command line tool and scripting environment, the better it is. As noted earlier, Microsoft is yet to determine the fate of Command Prompt but I believe it will be shelved some time in the future. They want to give everyone enough time to move base to PowerShell. These things take time and Windows has a huge userbase which only complicates the transition process.