Users want commands with arguments.
So, you use spaces as argument delimiters.
Users want spaces within arguments (e.g. in file names).
So, you quote arguments.
Users want quotes (and about everything you can imagine) within arguments.
So, you use yet more quotes or some other form of escaping. Perhaps, escaping should've been introduced early on...
Users want your stuff to be compatible with and have a look and feel of what they're used to.
If you haven't felt screwed yet, you are now.
You might find this useful:
How Command Line Parameters Are Parsed by David Deley. Especially, if you're a fan of horror movies.
All that even before you start making sense of the command line.