Поиск синтаксического анализатора параметра командной строки для [закрытой].NET

select id,name 
from friends 
order by id=5 desc

(если вас не беспокоит порядок остальных, в противном случае, например, останутся по id asc )

select id,name 
from friends 
order by id=5 desc, id asc
79
задан Guss 9 September 2009 в 19:12
поделиться

9 ответов

Моя любимая сторонняя библиотека парсинга командной строки Синтаксический анализатор Командной строки , и я предполагаю, что это - то, к которому Вы обращаетесь. Новый выпуск был меньше чем 2 месяца назад и существуют регулярные фиксации. Если Вы хотите более зрелое предложение, Вы могли бы проверить консольную библиотеку в моно проект (извините, я, может казаться, не нахожу прямую ссылку на пространство имен в данный момент, но это - часть моно платформы)

52
ответ дан Stephen Drew 24 November 2019 в 10:19
поделиться

Полагайте, что, как только Вы начинаете использовать этот синтаксический анализатор, необходимо будет или поддержать его сами или иначе зависеть от кого-то еще для поддержания его для Вас. Можно быть более обеспеченной записью собственное, начинающее с самого критического, непосредственного, требований. Я нашел, что не требуется слишком большой работы для создания некоторого довольно сложного парсинга командной строки для большинства основанных на консоли приложений, я продолжил работать.

я также нашел, что, когда парсинг является слишком сложным, может быть пора прекратить использовать командную строку.

1
ответ дан John Saunders 24 November 2019 в 10:19
поделиться

Печально существует не создан в поддержке обработки этого стандартным способом. Вы изучили PowerShell? Я держал пари, что существует класс в той оболочке, которая делает точно, что Вы хотите или что-то подобное.

4
ответ дан John Leidegren 24 November 2019 в 10:19
поделиться

Я использую синтаксический анализатор из поваренной книги C# 3.0.

Все примеры из этой книги могут быть загружены здесь: http://examples.oreilly.com/9780596516109/

Поиск 'Аргументов' и Вы найдете его. Необходимо сделать некоторые небольшие изменения кода для вытаскивания его из всего этого в собственный класс, но это не большая проблема.

Это поддерживает все Ваши точки кроме последних двух (параметр, объединяющийся & пропавшие без вести пространства).

1
ответ дан Oliver 24 November 2019 в 10:19
поделиться

Я держу пари, что это не совсем, что Вы ищете, но:

у Кого-то здесь была та проблема, и его первая мысль была "эй, ocaml имеет довольно хороший!", и быстро портированный это к F#.

1
ответ дан Ken 24 November 2019 в 10:19
поделиться

Взгляните на ndesk.options.

Это называют Моно. Опции теперь.

20
ответ дан Pavel Chuchuva 24 November 2019 в 10:19
поделиться

Популярным и довольно всесторонним синтаксическим анализатором командной строки C является GNU getopt. Это было портировано (или клонировано) для C#/.Net несколько раз. Некоторые из них включают:

Выберите! Существует несколько других, и Google может сказать Вам о тех,

5
ответ дан Sophie Alpert 24 November 2019 в 10:19
поделиться

Изменить: как указывает fatcat1111, эта функция не входила в окончательную версию .net 4.0.

В C # 4.0 есть неплохой вариант. Возможно, это пока не очень полезно, но вы можете подумать о том, чтобы посмотреть на что-то, что упростит переход к встроенному, когда он выйдет. Барт Де Смет рассказал об этом на своем B # blog

2
ответ дан 24 November 2019 в 10:19
поделиться

Я фанат переноса C # на OptParse, встроенную библиотеку на Python. Он довольно прост в использовании по сравнению с большинством других предложений здесь и содержит ряд полезных функций в дополнение к простому автоматическому синтаксическому анализу.

0
ответ дан 24 November 2019 в 10:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: