Найти в Дзене
Программы от меня

Аргументы командной строки в C#. Часть 3. Полезняшка.

Здравствуйте, дорогие друзья! Сегодня мы продолжим говорить об аргументах командной строки, и как я и обещал, создадим полезную программку. Кроме работы с аргументами она будет показывать различные параметры нашего компьютера. Спросите, зачем это надо, ведь можно открыть свойства компьютера и посмотреть. Верно, можно, но порой необходимо получить информацию для программ, для протоколов и еще много для чего, и нужно, чтобы компьютер поставлял её нам по нашему запросы сразу, подобно команде uname -a в линуксе Наша программка будет работать также из консоли, иметь короткое название и выводить нужную нам информацию о компьютере по команде. Создание программы Давайте откроем Visual Studio и создадим новый проект типа консольное приложение: Программа наша будет называться "Параметры персонального компьютера", по-английски Personal computer settings, сокращенно... ну pcs ... вроде такое название я где-то видел, поэтому у первого слова задействуем две первые буквы и получится pecs. А чт
Оглавление

Здравствуйте, дорогие друзья! Сегодня мы продолжим говорить об аргументах командной строки, и как я и обещал, создадим полезную программку. Кроме работы с аргументами она будет показывать различные параметры нашего компьютера. Спросите, зачем это надо, ведь можно открыть свойства компьютера и посмотреть. Верно, можно, но порой необходимо получить информацию для программ, для протоколов и еще много для чего, и нужно, чтобы компьютер поставлял её нам по нашему запросы сразу, подобно команде uname -a в линуксе

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

Создание программы

Давайте откроем Visual Studio и создадим новый проект типа консольное приложение:

-2

Программа наша будет называться "Параметры персонального компьютера", по-английски Personal computer settings, сокращенно... ну pcs ... вроде такое название я где-то видел, поэтому у первого слова задействуем две первые буквы и получится pecs. А что, красивое название для программы, короткое и емкое. Пусть оно у нас и будет.

-3

Далее версия .Net - по умолчанию и нажимаем кнопку Создать.

Получаем следующее окно программы:

-4

Удалим весь код и сделаем заготовку для нашей программы, как мы делали в предыдущих статьях

-5

Мы добавили многострочную строковую переменную help_, в которую ввели название нашей программы и версию, далее сделали блок try...catch, где будет проверка на ошибки. собственно весь дальнейший код у нас будет в блоке try. В catch мы выведем наш help_, но пока мы его вывели за пределом блока, чтобы проверить работоспособность программы. Запустим зеленую стрелочку компиляции программы, в консольном окне получим следующее:

-6

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

-7

Отлично, всё работает, приступаем к написанию кода

Узнаем новое о нашем компьютере

Информацию о компьютере можно получить, используя класс Environment. Есть и другие классы, позволяющие получить более подробную информацию, но Environment для нас удобен тем, что его не надо устанавливать дополнительно, он работает что называется в стандартной комплектации нашего проекта. При помощи него можно получить:

  • - имя компьютера:

Console.WriteLine(Environment.MachineName);

  • версию операционной системы, установленной на компьютере

Console.WriteLine(Environment.OSVersion);

  • системную папку

Console.WriteLine(Environment.SystemDirectory);

  • какие логические диски есть на машине

Console.WriteLine(String.Join(", ", Environment.GetLogicalDrives())
.TrimEnd(',', ' ')
.Replace("\\", String.Empty));

  • имя (ник) текущего пользователя

Console.WriteLine(Environment.UserName);

  • число процессоров

Console.WriteLine(Environment.ProcessorCount);

и многое другое, но для работы нам достаточно и этого.

Программный код

Начинаем программировать. Суть работы нашей программы: из командной строки вместе с именем запускаемой программы передается параметр, состоящей из одной буквы, прочитав которую, наша программа выдает нам ту или иную информацию. Пусть у нас будут: имя машины -n, имя операционной системы -o, системная папка -s, логические диски -d, текущий пользователь -u, число процессоров -p. Страница помощи - во всех остальных случаях, а также в случае запуска без параметра (ну или можно по параметру -h). Получаем информацию о том, что у нас args не пустой, считываем значение параметра и создаем swich...case. Так же сделаем подробное описание, какие параметры за что отвечают, в переменной help_ . Программа примет следующий вид:

-8

Компилируем, запускаем, получаем результаты:

-9

Так, всё хорошо отработало с параметрами -h, -s, -n, но возникли проблемы с параметром -d, я его забыл прописать (программа в принципе нормально отработала, а также ничего не вывела при запуске без параметров. Вносим исправления. С учетом изменений блок try...catch выглядит следующим образом( остальное ничего не поменялось):

-10

Компилируем, запускаем, получаем результаты:

-11

Как мы видим, теперь всё отрабатывает, и при переносе нашей программы на другой компьютер мы можем получать параметры той машины, на которую наша программа будет скопирована. На этом благодарю за внимание, жду комментариев, если есть необходимость, с параметрами продолжим