What makes them differ from each other? I was just experimenting with MS DOS, and then found Powershell. Can't figure out why Microsoft gave them.
In short, powershell is fully fledged, extensible scripting platform whereas ms-dos isn't. ms-dos was fine for Windows 98 but not anymore. Microsoft is heavily investing in powershell development. They are trying to present powershell like what BASH is to Linux. In newer OS from Microsoft, you can nearly do all tasks using powershell commandlets. What you can do in Dos can also be done in powershell but reverse is not true. There are a great number of third party commandlets available for powershell which makes it very flexible.