I am writing a batch file program which utilises the choice command like so:
choice /C Xx /N /CS
Don't fret about the /M switch, or the /T and /D switch pair, I just want to fool-proof this program so that a user can not accidentally, due to being unaware of the Caps Lock state, make the wrong choice. I have read numerous articles, on the Microsoft site, here at SO, and other external internet sources, that provide batch file solutions, but all of these solutions have involved some sort of external program, like a VBS script or the like. I don't mind being referred to an external source, or another question on SO if it meets my needs.
In short, I would like to be able to toggle Caps Lock in pure batch, without using anything except batch file. Thanks in advance.
You can't - Windows BAT/CMD script language does not have a way to do so. Complete list of statements/command directly supported by CMD is available on TechNet:CMD. Note that even choice
you are using is not part of the script language itself.
As pointed in comments removing "/CS" option will do case insensitive comparison you are looking for:
choice /?
...
/CS Enables case-sensitive choices to be selected. By default, the utility is case-insensitive.
Unless you are targeting very old (I think 3.1 or maybe vanilla 95) version of Windows you can safely use VBS as it is always present on more recent versions as well as JavaScript. If you are looking for additional command line utilities check out XP command line reference as it will give you most broadly available list of tools.