Make each command a class, derived from an abstract base defining the general structure of a command. As much as possible, the definition of command properties should be put into class variables with methods defined in the base class handling that data.
Register each of these subclasses with a factory class.
This factory class get the argument list an decides which command to execute by instantiating the appropriate command sub class.
Argument checking is handled by the command sub classes themselves, using properly defined general methods form the command base class.
This way, you never need to repeatedly code the same stuff, and there is really no need to emulate the switch statement. It also makes extending and adding commands very easy, as you can simply add and register a new class. Nothing else to change.