You can do a lot of what you want in a "DOS" / Batch file, including some of the color requirements, but DOS is pretty basic. Writing PowerShell code is essentially the same as a Batch file, just a different, more complex set of commands.
Just to confirm, you are trying to create on only applet that prompts user for some imput then outputs
PowerShell is a lot more powerful than DOS and should be able to do everything you need, so I disagree with Ethan's suggestion of going to C. Sure it is an option, but requires installing a new programming language, it is probably overkill for what you want to do and PowerShell is free.
Your overall question is too big to answer. Either break it up into smaller pieces or do your own research. Here are some links to get you started:
When to a Build a GUI for your Scripts
https://www.adamtheautomator.com/when-to-a-buil...
March 1, 2016
PowerShell is a shell language by nature. This means it was designed for the command-line. 95% of the PowerShell scripts you are building today are most likely executed from the PowerShell console in some way. However, did you realize that you can build professional-looking GUIs from within PowerShell? I’d like to over some considerations of when you might choose to create a GUI rather than a command-line tool.
Definitely take a look at this series of articles. It will probably answer many of your questions:
Learning GUI Toolmaking Series
https://foxdeploy.com/series/learning-gui-toolm...
Scripting is one thing, but to make your tools really pop, you’ll eventually want to build your own Graphical User Interface for end-users to use, especially those who might be frightened of using a scripting environment like PowerShell. In this series, I’ll take you step by step, from creating a GUI using built-in .net methods like System.Windows.Forms to the super quick, super effective XAML/WPF approach, using Visual Studio. As time goes on and I post more and more about GUI Toolmaking, this post will always be updated with the newest links
This tip is an example outputs possible from PowerShell (not specific to your question)
OUTPUTS- Generate a server uptime HTML report with PowerShell
https://4sysops.com/archives/generate-a-server-...
Sitaram Pamarthi Fri, Sep 21 2012 powershell 15
The PowerShell script discussed in this post will ping a list of servers and get their uptime in HTML...Read more
OUTPUTS- HTML- Creating Simple PowerShell HotFix HTML Reports
https://www.petri.com/simple-powershell-hotfix-... June 20, 2016 by Jeff Hicks
Looking to learn how to create simple PowerShell hotFix HTML reports? Jeff Hicks has you covered with a new tutorial that will help any IT Pro master this powerful feature. ConvertTo-HTML Get-MyHotFix
OUTPUTS- HTML- It's In the Mail Part 1: Sending PowerShell Data via E-Mail
https://mcpmag.com/articles/2013/06/04/in-the-m...
By Jeffery Hicks 06/04/2013
It is very easy to get a lot of information out of PowerShell. But sometimes it isn't as easy to get it where it needs to be. One solution is e-mail. Everyone has it so why not send data pulled from PowerShell via an e-mail message? It is very easy with the Send-MailMessage cmdlet. These are plain text messages
Part 2: Sending Rich Messages by Jeffery Hicks
https://mcpmag.com/articles/2013/06/11/in-the-m...
Part two will focus on how to send HTML messages through PowerShell
OUTPUTS- HTML- Use Markdown with PowerShell
In this article, you’ll learn what Markdown is, how to use it, and why it’s an important tool for the PowerShell administrative scripter.
Back in 2004, a blogger named John Gruber wrote a Perl script called Markdown that automated text-to-HTML conversions for web content creators. John released Markdown under a BSD-style open-source license.
The good news is that we PowerShell administrative scripters can easily add Markdown syntax to our toolset and make good use of the language on GitHub.
Make Your PowerShell Scripts Talk Back
https://mcpmag.com/articles/2015/01/08/powershe...
Being able to receive real-time feedback as you work is a huge factor in writing script that won't break. 01/08/2015
More PowerShell Coloring Tips for Domain Controller Statuses
https://www.petri.com/more-powershell-coloring-... January 26, 2016 with Jeff Hicks
PowerShell MVP Jeff Hicks shows you how to build an advanced highlighting function that should work for any command.
Multiply PowerShell Strings to Customize Text Underlines
http://blogs.technet.com/b/heyscriptingguy/arch... The Scripting Guys .... on 29 Jan 2012
Create a Windows PowerShell function that accepts pipelined input and creates a variable length underline that uses various characters
PowerShell Anger Management
https://mcpmag.com/articles/2013/08/06/powershe... by Jeffery Hicks
Here's how to make those warning messages in PowerShell more visually appealing.
******************* Optional Reading *******************
Outside scope of your question, but examples of what you can do in PowerShell
OUTPUTS- Make a Marquee
http://blogs.technet.com/b/heyscriptingguy/arch... ScriptingGuy1 on 23 Oct 2010
Learn how to display output as moving text by using Windows PowerShell and easy to use techniques....