You can do it, of course, but your whole script would become "interactive" (waiting for user input) which would make it pretty much useless as such. In this case, normal windowed application could be better, as the console application with interactive input would defeat the purpose of the batch.
In professional practice, there are many programs written for console mode, and nearly all of them are purely or optionally non-interactive, that is, using only the console output and no interactive input at all. Instead, input data is passed through few
command line parameters; if you need to input more data, especially non-text data, one or more of the parameters could be used to pass a file name.
This approach would make your application perfectly suitable for Power Shell or regular *.BAT batches.
You would need a good technique to parse command line parameters. I would offer my easy-to-use but feature-rich library:
Enumeration-based Command Line Utility[
^].
It is provided in full source code and is good for maintenance which is clearly shown in a set of usage code samples.
—SA