2010-04-30 2 views
0

Я хочу разработать инструмент командной строки. Раньше я не строил, но я использовал несколько (например, меркурий). Какие шаги я должен предпринять, чтобы знать, как это сделать? Итак, в чем проблема:Какие шаги я должен предпринять перед созданием приложения командной строки с использованием C#

  1. Обычное консольное приложение необходимо вызывать из командной строки только из его каталога. Вроде: C:\Projects\CommanLineProject\MyProjectConsole.exe. Я хочу использовать его из командной строки из любого каталога, например mercurial.

  2. Я не уверен, как разбирать и использовать аргументы командной строки. Существуют программы, которые принимают следующие аргументы: c:\>MyProject "c:\point to this path" /xml:"here is the another path" /r.

+4

Я не вижу, как этот вопрос будет отличаться от того, «какие шаги я предприму перед началом нового проект». В этом отношении написание спецификации кажется хорошим началом. –

+0

Я имею в виду, я знаю, как писать консольные приложения, но я не уверен, как создать приложение командной строки. –

+0

Вы, кажется, думаете, что эти два разные? Пожалуйста, дополните. –

ответ

2

Инструмент командной строки - это просто консольное приложение. Вы можете использовать параметр string[] args из метода Main для извлечения любых аргументов, переданных приложению.

+0

Я бы рекомендовал изменить void Основной метод для возврата int. При этом вы (или другие) можете использовать возвращаемые значения, с которыми вы выходите. – ChronoPositron

1

Одна вещь, которую вам нужно будет сделать, если приложение должно принимать любые, но самые основные аргументы, - это выбрать библиотеку синтаксического анализа строки cmd, так как в Framework нет.

2

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

+0

Спасибо за ссылку, это поможет. –

1

Для вопрос/редактирования # 1:

Если добавить путь к исполняемому файлу в переменную «Path» окружения вашей операционной системы, вы можете запустить приложение из любого каталога. Дополнительная информация о настройке для Windows XP.

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

Для вопрос/редактирования # 2:

Вы можете использовать что-то вроде this разобрать фактические аргументы, которые передаются в приложение через массив args строки. Однако то, что вы делаете с аргументами после этого момента, полностью зависит от вас. Ничего не мешает вам просто пройти через массив и использовать аргументы вручную (foreach (string arg in args) {...}), если вы предпочитаете.

Если вы хотите, чтобы первый аргумент командной строки указывал путь к файлу для записи, пусть будет так. Если вы хотите иметь необязательный аргумент, например /verbose, тогда это работает. Вы действительно ограничены только своим воображением (и ограничениями, которые могут быть введены на законной основе в командной строке :))

Смежные вопросы