Лучшее, что можно сделать, это не брать на себя что-либо, если можешь. Когда оператор вводит имя вашего приложения для выполнения и не имеет никаких параметров, нажмите на него блоком USAGE или в альтернативном варианте откройте форму Windows и дайте им возможность ввести все, что вам нужно.
c:\>FOO
FOO
USAGE FOO -{Option}{Value}
-A Do A stuff
-B Do B stuff
c:\>
Разграничение параметров я ставлю под заголовком религиозной темы: дефисы (тире), двойные дефисы, косые черты, ничего, позиционные и т. Д.
Вы не указали свою платформу, но для следующего комментария я буду использовать Windows и .net
Вы можете создать консольное приложение в .net и позволить ему взаимодействовать с рабочим столом с помощью форм, просто выбрав консольный проект, а затем добавив библиотеки Windows.Forms, System.Drawing и т. Д.
Мы делаем это все время. Это гарантирует, что никто не свернет в темный переулок.