Как запускать программу с параметром

При создании консольного приложения в языке программирования С++, автоматически создается строка очень похожая на эту:

int main(int argc, char* argv[]) // параметры функции main()

Эта строка — заголовок главной функции main() , в скобочках объявлены параметры argс и argv.

Так вот, если программу запускать через командную строку, то существует возможность передать какую-либо информацию этой программе, для этого и существуют параметры argc и argv[] . Параметр argc имеет тип данных int , и содержит количество параметров, передаваемых в функцию main . Причем argc всегда не меньше 1, даже когда мы не передаем никакой информации, так как первым параметром считается имя функции. Параметр argv[] это массив указателей на строки.

Через командную строку можно передать только данные строкового типа. Указатели и строки — это две большие темы, под которые созданы отдельные разделы. Так вот именно через параметр argv[] и передается какая-либо информация. Разработаем программу, которую будем запускать через командную строку Windows, и передавать ей некоторую информацию.

Что значит «запустить программу с параметром»


// argc_argv.cpp: определяет точку входа для консольного приложения. #include «stdafx.h» #include using namespace std; int main(int argc, char* argv[]) < if (argc >1)// если передаем аргументы, то argc будет больше 1(в зависимости от кол-ва аргументов) < cout else < cout system(«pause»); return 0; >
// argc_argv.cpp: определяет точку входа для консольного приложения. #include using namespace std; int main(int argc, char* argv[]) < if (argc >1)// если передаем аргументы, то argc будет больше 1(в зависимости от кол-ва аргументов) < cout else < cout return 0; >

После того как отладили программу, открываем командную строку Windows и перетаскиваем в окно командной строки экзэшник нашей программы, в командной строке отобразится полный путь к программе(но можно прописать путь к программе в ручную), после этого можно нажимать ENTER и программа запустится (см. Рисунок 1).

Аргументы функции main()

Рисунок 1 — Параметры функции main

Так как мы просто запустили программу и не передавали ей никаких аргументов, появилось сообщение Not arguments . На рисунке 2 изображён запуск этой же программы через командную строку, но уже с передачей ей аргумента Open .

Аргументы функции main()

Рисунок 2 — Параметры функции main

Аргументом является слово Open , как видно из рисунка, это слово появилось на экране. Передавать можно несколько параметров сразу, отделяя их между собой запятой. Если необходимо передать параметр состоящий из нескольких слов, то их необходимо взять в двойные кавычки, и тогда эти слова будут считаться как один параметр. Например, на рисунке изображен запуск программы, с передачей ей аргумента, состоящего из двух слов — It work .

Как запускать все программы от имени Администратора | Режим одобрения администратором | УБО #1

Аргументы функции main()

Рисунок 3 — Параметры функции main

А если убрать кавычки. То увидим только слово It . Если не планируется передавать какую-либо информацию при запуске программы, то можно удалить аргументы в функции main() , также можно менять имена данных аргументов. Иногда встречается модификации параметров argc и argv[] , но это все зависит от типа создаваемого приложения или от среды разработки.

Источник: cppstudio.com

как запустить программу с параметрами

как можно запустить программу с нужными параметрами, чтобы посмотреть результат? на форуме видела вариант Run — Edit configuration — Program arguments вбиваю например -i id, нажимаю ok или apply и ничего не открывается

Дерево классов

CRUD — Create, Read, Update, Delete.

Программа запускается с одним из следующих наборов параметров:
-c name sex bd
-r id
-u id name sex bd
-d id

Значения параметров:
name — имя, String
sex — пол, «м» или «ж», одна буква
bd — дата рождения в следующем формате 15/04/1990
-c — добавляет человека с заданными параметрами в конец allPeople, выводит id (index) на экран
-r — выводит на экран информацию о человеке с id: name sex (м/ж) bd (формат 15-Apr-1990)
-u — обновляет данные человека с данным id
-d — производит логическое удаление человека с id, заменяет все его данные на null

id соответствует индексу в списке.
Все люди должны храниться в allPeople .
Используй Locale . ENGLISH в качестве второго параметра для SimpleDateFormat .

Пример параметров:
-c Миронов м 15/04/1990

Пример вывода для параметра -r:
Миронов м 15-Apr-1990

Если программа запущена с параметрами, то они попадают в массив args (аргумент метода main — String[] args ).
Например, при запуске программы c параметрами:
-c name sex bd
получим в методе main
args[0] = «-c»
args[1] = «name»
args[2] = «sex»
args[3] = «bd»
Для запуска кода с параметрами в IDE IntellijIDEA нужно их прописать в поле Program arguments в меню Run -> Edit Configurations.

Читайте также:
Черви вредоносные программы это

Источник: javarush.com

Как запустить программу с параметрами командной строки

Как запустить программу с параметрами командной строки

Нередко для разнообразных программ приходится указывать специальные параметры командной строки, которые должны активироваться при ее запуске. К примеру, в программе QIP, чтобы не надоедала лишними сервисами, в параметрах необходимо указать ключ “/isolated”. Как это сделать?

Кстати данный ключ в QIP лично я использую всегда – он превращает программу в тот старый добрый QIP, каким он был когда-то, без толпы надоедливых сервисов и всякой дряни. Остается лишь сама “аська”.

Ну да мы отвлеклись. Запустить программу с параметрами командной строки несложно. Для этого нужно сначала создать ее ярлык на рабочем столе либо в панели задач.

Щелкните на значке программы в папке Program Files либо в списке Все программы правой кнопкой мыши и выберите команду Отправить > Рабочий стол (создать ярлык).

pic000

Ярлык появится на рабочем столе. Щелкните на нем правой кнопкой мыши и выберите команду Свойства. Откроется окно, в котором нас интересует поле Объект. Именно в нем, после кавычек, и следует дописать нужную нам команду. В данном случае – ключ “/isolated”.

pic001

Однако, сей способ кажется мне несколько трудоемким. Создать ярлык, потом прописывать параметры… не проще ли получить возможность сразу запустить любую программу, указав в контекстном меню нужные параметры командной строки? Другими словами, просто щелкнул правой кнопкой мыши на файле, указал нужные параметры и дело в шляпе.

Поможет нам в этом программа ExecParm.

Параметры командной строки с ExecParm

Для начала скачаем программу, для системы нужной разрядности.

Скачем обычный архив, распаковать который можно куда угодно. В нем будет всего три файла – ExecParm.txt, Execparm.dll и Execparm.inf.

А где же исполняемый файл, спросите вы, как установить-то? Очень просто. Достаточно щелкнуть на файле Execparm.inf правой кнопкой мыши и выбрать команду Установить.

pic002

В сущности, таким образом в системный реестр просто добавиться несколько записей. Теперь достаточно щелкнуть на исполняемом файле программы правой кнопкой мыши и выбрать команду Execute With Parameters (т.е. запустить с параметрами командной строки).

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

11.11 – Аргументы командной строки

Как вы узнали из урока «0.4 – Введение в разработку на C++», при компиляции и компоновке программы на выходе получается исполняемый файл. Когда программа запускается, выполнение начинается с функции main() . До этого момента мы объявляли main следующим образом:

Обратите внимание, что эта версия main() не принимает параметров. Однако для работы со многими программами требуются какие-то входные данные. Например, предположим, что вы пишете программу под названием Thumbnail , которая считывает файл изображения, а затем создает миниатюру (уменьшенную версию этого изображения). Как Thumbnail узнает, какое изображение прочитать и обработать? Пользователь должен каким-то образом указать программе, какой файл открыть. Для этого вы можете использовать следующий подход:

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

Давайте рассмотрим эти случаи подробнее.

Рассмотрим случай, когда вы хотите создать миниатюры для всех файлов изображений в заданном каталоге. Как бы вы это сделали? Вы можете запускать эту программу столько раз, сколько изображений в каталоге, печатая имя каждого файла вручную. Однако если бы изображений были сотни, это могло бы занять целый день! Хорошим решением здесь было бы написать программу, которая перебирает имя каждого файла в каталоге, вызывая Thumbnail один раз для каждого файла.

Теперь рассмотрим случай, когда вы запускаете веб-сайт и хотите, чтобы на вашем сайте создавался эскиз каждый раз, когда пользователь загружает изображение на ваш сайт. Эта программа не настроена для приема входных данных из Интернета, так как же человек, загружающий файл, будет вводить имя файла в этом случае? Хорошим решением здесь было бы, чтобы ваш веб-сервер автоматически вызывал Thumbnail после загрузки.

В обоих этих случаях нам нужен способ, чтобы внешняя программа могла передавать имя файла в качестве входных данных для нашей программы Thumbnail при ее запуске, а не заставлять Thumbnail ждать после запуска, пока пользователь введет имя файла.

Аргументы командной строки – это необязательные строковые аргументы, которые операционная система передает программе при ее запуске. Затем программа может использовать их в качестве входных данных (или игнорировать). Подобно параметрам функции, которые позволяют функции предоставлять входные данные для другой функции, аргументы командной строки позволяют людям или программам предоставлять входные данные программе.

Передача аргументов командной строки

Исполняемые программы можно запускать из командной строки, вызывая их по имени. Например, чтобы запустить исполняемый файл » WordCount «, который находится в корневом каталоге диска C: на компьютере с Windows, вы можете ввести:

Чтобы передать аргументы командной строки в WordCount , мы просто перечисляем их после имени исполняемого файла:

Читайте также:
Как удалять программы с телевизора

Теперь при выполнении WordCount Myfile.txt будет предоставлен в качестве аргумента командной строки. Программа может иметь несколько аргументов командной строки, разделенных пробелами:

Это также работает и в других операционных системах командной строки, таких как Linux (хотя приглашение и структура каталогов, несомненно, будут отличаться).

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

В Microsoft Visual Studio кликните правой кнопкой мыши на своем проекте в обозревателе решений и выберите «Свойства» (Properties). В открывшемся окне разверните дерево «Свойства конфигурации» (Configuration Properties) и выберите «Отладка» (Debugging). На правой панели есть строка с названием «Аргументы команды» (Command Arguments). Вы можете ввести туда аргументы командной строки для тестирования, и они будут автоматически переданы вашей программе при ее запуске.

Задание аргументов командной строки в Microsoft Visual Studio

Рисунок 1 – Задание аргументов командной строки в Microsoft Visual Studio

В Code::Blocks выберите «Project» (Проект) → «Set program’s arguments» (Установить аргументы программы).

Задание аргументов командной строки в Code::Blocks

Рисунок 2 – Задание аргументов командной строки в Code::Blocks

Использование аргументов командной строки

Теперь, когда вы знаете, как предоставить программе аргументы командной строки, следующим шагом будет доступ к ним из нашей программы на C++. Для этого мы используем другую форму main() . Эта новая форма main() принимает два аргумента (по соглашению названные argc и argv ) следующим образом:

Иногда вы также можете увидеть и такое:

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

argc – это целочисленный параметр, содержащий счетчик числа аргументов, переданных программе ( argc = argument count, число аргументов). argc всегда будет не меньше 1 потому, что первым аргументом всегда является имя самой программы. Каждый аргумент командной строки, предоставляемый пользователем, приведет к увеличению argc на 1.

argv – это место, где хранятся фактические значения аргументов ( argv = argument values, значения аргументов, хотя на самом деле расшифровывается как «argument vectors»). Хотя объявление argv выглядит устрашающе, на самом деле argv представляет собой просто массив строк в стиле C. Длина этого массива – argc .

Давайте напишем короткую программу с именем MyArgs для вывода значений всех параметров командной строки:

Теперь, когда мы вызываем эту программу ( MyArgs ) с аргументами командной строки » Myfile.txt » и » 100 «, вывод будет следующим:

Аргумент 0 – это путь и имя текущей запущенной программы. Аргументы 1 и 2 в данном случае – это два параметра командной строки, которые мы передали.

Работа с числовыми аргументами

Аргументы командной строки всегда передаются в виде строк, даже если предоставленное значение является числовым. Чтобы использовать аргумент командной строки в качестве числа, вы должны преобразовать его из строки в число. К сожалению, C++ делает это немного сложнее, чем должно быть.

В C++ это можно сделать следующим образом:

При запуске с вводом » 567 » эта программа печатает:

std::stringstream работает так же, как std::cin . В этом случае мы инициализируем его значением argv[1] , и поэтому можем использовать operator>> для извлечения значения в целочисленную переменную (так же, как и с std::cin ).

Подробнее о std::stringstream мы поговорим в следующей главе.

Операционная система анализирует аргументы командной строки первой

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

Как правило, в операционных системах действуют особые правила обработки специальных символов, таких как двойные кавычки и обратный слеш.

Обычно строки, переданные в двойных кавычках, считаются частью одной строки:

Если вы хотите включить двойную кавычку в состав строки, вам нужно поставить перед двойной кавычкой обратный слеш:

Аргументы командной строки предоставляют пользователям и другим программам отличный способ передать входные данные в программу при запуске. Рассмотрите возможность использования любых входных данных, необходимых для работы программы при запуске, в качестве параметров командной строки. Если они не будут переданы через командную строку, вы всегда можете обнаружить это и попросить пользователя ввести данные. Таким образом, ваша программа сможет работать в любом случае.

How to start a program with command line arguments on Windows’ cmd with ‘start’ command?

I need to start a program (virtual machine) in the background with a start command on Windows’ 7 command line. Normally you would do this like that:

But I need to pass some arguments and when I so it like this (without /b flag to see the debug information):

I get this error message:

Windows cannot find ‘-startvm’. Make sure you typed the name correctly, and then try again.

On the other hand when I do it in the current command line window without the start in the beginning the virtual machine runs normally — but in the foreground.

2 Answers 2

If you read the parameter list with start /? :

It expects a title enclosed in quotes ( » ). Since your program path included quotes, it got interpreted as the title. Adding an explicit title (in this case, empty, «» ) works.

Читайте также:
Как поставить программу excel

An alternative method is using the /d switch to specify the path. Specifically:

It appears to take the first argument after the /d switch as the path, even if it is quoted, and if the next argument is not quoted then this works. Everything after what is recognised as the command/program is passed as a parameter to that command/program. Note this will not work if the command/program has spaces in the name, e.g. VBox Headless.exe , since that would require quotes and be recognised as a title.

Overall, the first (explicit title) method is probably better. It was a bad design choice on the part of Microsoft, they really should have added a switch for title rather than «is the first argument enclosed in quotes?».

Запуск программ в командной строке с аргументом

Сегодня расскажу, как запустить программу в командной строке Windows , да ещё и с аргументом.

Дело в том, что буквально только вчера описал одну замечательную и удобную бесплатную софтину (полезный дополнительный пункт контекстного меню), как уже сегодня мне в комментариях к этому обзору прислали вполне логичный вопрос — как удалить эту программу, если что?

Предисловие

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

Оказалось (вычитал на официальном сайте автора утилиты), что для удаления надо всего-лишь запустить её в командной строке Windows, от имени администратора, да ещё и с определённым аргументом.

Главное, что написано это было таким «обыденным тоном», как будто простой смертный пользователь компьютера всю эту процедуру должен по-любому уметь делать с самого своего рождения.

Понятия не имел, как это делается — узнал, научился и делюсь этой информацией (решил отдельную статью написать, ведь это знание может пригодиться не только для удаления одной определённой программы).

Как открыть командную строку в Windows

На этом этапе статьи у меня возникла небольшая курьёзная заминка — не мог определиться, как правильнее будет звучать подзаголовок. Сперва хотел прописать — «как вызвать командную строку…», но решил, что обычно вызывают духов или джинов.

Потом пришло на ум — «как запустить командную строку…», но снова появились сомнения, ведь запускают, как правило, ракеты в космос. В итоге, написал, как написал, хоть и вспомнились при этом консервы и банки с огурцами.

Это была поднимающая настроение пауза, а теперь снова делаем серьёзные, даже суровые лица и идём искать командную строку в Windows.

Найти её в системных дебрях совсем не трудно. Можно воспользоваться при этом несколькими методами…

  • Тыкаем на клавиатуре сочетание клавиш Win+R, вводим команду «cmd» (без кавычек) и неистово жмём на «Ок»

  • Находим в Проводнике папку C:WindowsSystem32 и запускаем «cmd.exe»…

Кстати, в этом случае уже можно кликнуть правой кнопкой мыши по файлу и выбрать в контекстном меню «Запуск от имени администратора», если это условие требует какая-либо инструкция…

  • Ещё можно через меню кнопки «Пуск» перейти в «Служебные — Windows»…

В этом случае также можно запустить командную строку Windows от имени Администратора (через контекстное меню, кликнув правой кнопкой мыши по исполнительному файлу)…

Запускаем в командной строке Windows любую программу

Всё очень просто — нужно всего-лишь знать правильный путь к исполнительному файлу запускаемой программы. Его можно легко получить, например, с помощью бесплатной программы Path Copy Copy.

Далее просто прописываем ручками этот путь в командную строку Windows (если программист или хакер и этот способ самый простой и привычный (тогда не ясно, зачем вообще читаете эту статью)).

Простым пользователям советую заранее приготовить свой путь к исполнительному файлу программы в текстовом файлике и скопипастить (скопировать и вставить) его в командное окно, нажав «Enter» на клавиатуре после этого…

Большой нюанс! Если в пути к запускаемому файлу есть пробелы, то его (путь) нужно брать в кавычки…

Теперь возвращаюсь к виновнику написания данной инструкции. Чтоб удалить, например, программу Paste Into File нужно запустить её исполнительный файл с аргументом (условием) /unreg…

Как видите, можно добавлять «start» перед адресом к запускаемой программе, но и без этого слова всё чудно запустится. Вот и стали повелителями командной строки Windows.

Осталось извиниться за разноцветные «шапки» окон на скриншотах в статье — никак не могу определиться с красивой темой Windows, да и пассивные окна на заднем плане у меня выделяются жёлтым цветом (уже и не помню, где это выставил).

Теперь знаете, как запустить программу в командной строке Windows с аргументом. До новых полезных компьютерных программ и интересных приложений для Андроид.

ПОЛЕЗНОЕ ВИДЕО

Уверенный пользователь трех домашних ПК с многолетним опытом, «компьютерщик» для всех родственников, соседей и знакомых, в течении 13-ти лет автор более тысячи обзоров интересных и полезных программ для компьютера на собственном софтовом блоге OptimaKomp.RU

Похожие публикации:

  1. Как выйти из режима чтения в ворде
  2. Как сделать принтер по умолчанию windows 10
  3. Как сделать тире в повер поинт
  4. Active file recovery как пользоваться пошаговая инструкция

Источник: amdy.su

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru