Какие шаги я должен предпринять перед созданием приложения командной строки с использованием C # - PullRequest
0 голосов
/ 01 мая 2010

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

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

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

Ответы [ 5 ]

2 голосов
/ 01 мая 2010

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

2 голосов
/ 01 мая 2010

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

1 голос
/ 01 мая 2010

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

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

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

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

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

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

1 голос
/ 01 мая 2010

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

http://commandline.codeplex.com/

1 голос
/ 01 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...