Как узнать параметры запуска приложения
Пользователи операционной системы Windows привыкли запускать все программы путем двойного нажатия левой кнопкой мыши по их иконкам. Однако мало кто знает, что это же действие можно произвести в системной консоли. В этой статье будет рассказано о том, как запустить программу c через командную строку. Всего рассмотрим три способа. А в конце предоставим метод, позволяющий запускать программу через ярлык, но с консольными параметрами.
Как запустить программу из командной строки?
Сразу стоит сказать, что все нижеописанные методы в большинстве своем схожи. Однако командная строка – это специфический инструмент, и в зависимости от того, какие атрибуты вы будете использовать для открытия приложения, будут меняться свойства последнего.
Способ 1: запуск системного приложения
Первым делом расскажем, как запустить программу из командной строки, если она системная. Пожалуй, это самый простой метод, так как для его выполнения потребуется знать всего одну команду – start. Ну и, конечно же, название самого приложения. Ниже будут перечислены самые популярные системные программы:
Командная строка (при запуске откроется второе окно)
По итогу для запуска определенной программы вам необходимо написать слово start и ввести ее название через пробел. На практике это выглядит следующим образом:
Способ 2: указать полный путь к файлу
К сожалению, запустить программу от стороннего разработчика предыдущим способом не получится, но есть другой метод. Заключается он во вводе полного пути к исполняемому файлу. Например, у вас на системном диске C лежит установщик какой-то программы с названием install.exe. Чтобы его запустить, потребуется ввести следующую команду:
Соответственно, если файл будет находиться в другой папке, то в строке нужно ввести все директории, которые следуют до файла. К слову, очень важно, чтобы в названии папок не было пробелов. В противном случае появится ошибка. Устранить ее довольно просто – нужно взять весь путь в кавычки. Например:
Способ 3: используя path
Третий способ, как запустить программу из командной строки, подразумевает использование команды patch. Ее суть заключается в запоминании указанной директории. То есть вам необходимо ввести адрес не к самому файлу, а к папке, где он находится. Например, нужно открыть Total Commander, который находится по следующему адресу:
Тогда в консоли введите следующую команду:
Командная строка запомнит директорию, которую вы указали, и будет запускать все файлы из нее, если вы введете их название. Таким образом для запуска Total Commander останется лишь написать его название:
Как запустить программу с параметрами командной строки?
Теперь перейдем непосредственно к тому, как запустить приложение с консольными параметрами. К слову, делается это достаточно просто, даже командную строку открывать не придется – все выполняется в свойствах ярлыка.
- Нажмите ПКМ по ярлыку программы.
- Выберите пункт "Свойства".
- Перейдите на вкладку "Ярлык".
- В поле "Объект" допишите нужный параметр после кавычек.
- Нажмите применить и закройте окно.
Теперь программа будет запускаться с указанным параметром, вам всего лишь нужно дважды кликнуть по ее ярлыку. Вот мы и рассмотрели все способы, как можно запустить программу из командной строки. Ну а каким именно пользоваться – решать только вам.
Нередко для разнообразных программ приходится указывать специальные параметры командной строки, которые должны активироваться при ее запуске. К примеру, в программе QIP, чтобы не надоедала лишними сервисами, в параметрах необходимо указать ключ “/isolated”. Как это сделать?
Кстати данный ключ в QIP лично я использую всегда – он превращает программу в тот старый добрый QIP, каким он был когда-то, без толпы надоедливых сервисов и всякой дряни. Остается лишь сама “аська”.
Ну да мы отвлеклись. Запустить программу с параметрами командной строки несложно. Для этого нужно сначала создать ее ярлык на рабочем столе либо в панели задач.
Ярлык появится на рабочем столе. Щелкните на нем правой кнопкой мыши и выберите команду Свойства. Откроется окно, в котором нас интересует поле Объект. Именно в нем, после кавычек, и следует дописать нужную нам команду. В данном случае – ключ “/isolated”.
Однако, сей способ кажется мне несколько трудоемким. Создать ярлык, потом прописывать параметры… не проще ли получить возможность сразу запустить любую программу, указав в контекстном меню нужные параметры командной строки? Другими словами, просто щелкнул правой кнопкой мыши на файле, указал нужные параметры и дело в шляпе.
Поможет нам в этом программа ExecParm.
Параметры командной строки с ExecParm
Для начала скачаем программу, для системы нужной разрядности.
Скачем обычный архив, распаковать который можно куда угодно. В нем будет всего три файла – ExecParm.txt, Execparm.dll и Execparm.inf.
А где же исполняемый файл, спросите вы, как установить-то? Очень просто. Достаточно щелкнуть на файле Execparm.inf правой кнопкой мыши и выбрать команду Установить.
В сущности, таким образом в системный реестр просто добавиться несколько записей. Теперь достаточно щелкнуть на исполняемом файле программы правой кнопкой мыши и выбрать команду Execute With Parameters (т.е. запустить с параметрами командной строки).
Осталось указать необходимые параметры и щелкнуть на кнопке ОК. Возможно, это способ понравится кому-то больше, чем первый, более традиционный, вариант.
На этой странице вы найдете детальную инструкцию по запуску игры параметрами, ключами запуска. «Зачем это нужно?» — спросите вы. Чтобы ответить на этот вопрос необходимо рассказать что такое параметры, ключи запуска и на что они могут влиять. При запуске игры с указанием параметров вы активируете скрытые возможности, которые в большинстве случаев нельзя включить каким-либо другим путем. Следует также сказать, что каждая игра имеет свои индивидуальные ключи запуска, не зная о которых вы не сможете что-то активировать.
И так, что необходимо сделать, чтобы запустить игру с параметром? Сразу следует сказать, что запустить игры вместе с параметрами, ключами запуска, можно только через ярлык или командную строку, но так как через ярлык это сделать проще, то второй метод здесь рассмотрен не будет.
Создание ярлыка игры
Прежде чем создать ярлык игры, необходимо найти файл, который отвечает ее запуск. Все эти файлы имеют расширение exe, то есть значок запуска игры будет иметь следующий формат имени: название.exe Следует также сказать, что расширение exe может быть скрытым (не отображаться). Необходимый файл запуска находится в месте, которое вы указали во время установки — это может быть следующий путь:
C: Program Files название_игры название_название.exe
И так, необходимый файл вы нашли. Теперь создадим ярлык игры на рабочем столе. Создать ярлык можно несколькими методами — используйте какой-то один.
Добавление параметров запуска к ярлыку игры
Ярлык создан и можно добавлять параметры запуска игры. Для этого кликните правой клавишей мыши по созданному ярлыку на Рабочем столе и выберите пункт Свойства. Перед вами появится окно в котором вам понадобиться отредактировать только одно поле с названием Объект.
Для того чтобы запустить игру с параметрами (ключами) их необходимо дописать в конце поля Объект через пробел. Сразу следует сказать, что параметров запуска может быть больше одного и все они записываются в следующем формате в конце поля Объект через пробел:
Многие десктопные приложения поддерживают аргументы командной строки — этакие переключатели, позволяющие изменять поведение программ, запуская их с определенными настройками. Например, запущенный с ключом --process-per-site браузер Chrome позволяет открывать вкладки с одним доменом в одном процессе. Узнать, работает ли приложение с аргументами или нет достаточно просто, в Windows 10 для этого можно использовать Диспетчер задач или встроенную консольную утилиту WMIC.
Откройте Диспетчер задач, кликните правой кнопкой мыши по заголовку любого из столбцов и выберите в контекстном меню пункт «Командная строка».
Это действие добавит новый столбец, в котором будет указан полный путь к исполняемому файлу приложения и используемый аргумент. Как можно видеть из примера на скриншоте ниже,
процессы Chrome по умолчанию запускаются с определяющими локальные настройки аргументами, за исключением последнего, добавленного нами вручную для демонстрации.
Это самый простой способ просмотреть используемые работающим приложением ключи, а если с ним вдруг возникнут проблемы, всегда можете воспользоваться встроенной утилитой WMIC.
Команда получения аргументов выглядит следующим образом:
wmic.exe path Win32_Process where handle='PID' get Commandline /format:list
В ней вам нужно изменить только PID — идентификатор процесса проверяемого приложения.
Узнать его можно с помощью того же Диспетчера задач, переключившись на вкладку «Подробности» и подсмотрев идентификатор интересующего процесса.
В результате выполнения команды вы получите полный путь к исполняемому файлу и используемый аргумент.
Я ищу инструмент или метод, чтобы выяснить, какие параметры командной строки были переданы программе, например, когда она была запущена другой программой (сценарий запуска приложения).
Вы можете сделать это с помощью Process Explorer .
Просто наведите курсор мыши на процесс, чтобы увидеть аргументы командной строки, использованные для его запуска:
Кроме того, вы можете открыть свойства процесса и проверить командную строку прямо здесь:
Вы также можете сделать это без Process Explorer, используя службу WMI Windows. Запустите следующее из командной строки:
Если вы хотите вывести вывод в файл (это немного облегчает чтение), используйте параметр / OUTPUT:
@Pacerier: я не уверен, если честно ;-) Я думаю, что это произошло из-за того, что копался в документах WMI и играл, потому что мне нужно было что-то использовать WMI в то время. Это был очень полезный метод командной строки для получения командной строки запущенного процесса. В моем случае, я был в состоянии настроить это немного , чтобы получить выход только для определенного процесса: WMIC путь Win32_Process где «заголовок =„cmd.exe“» получить Commandline Отлично, и предложение where фактически поддерживает некоторые функции SQL, например, где "name вроде 'cmd.%'Этого также можно добиться с помощью диспетчера задач .
Откройте диспетчер задач (с помощью CTRL-SHIFT-ESC, CTRL-ALT-DELETE или любым другим способом).
Для Windows 7 (и, вероятно, Windows XP):
- Перейдите на вкладку «Процессы». В меню «Вид» выберите «Выбрать столбцы . ».
- Установите флажок «Командная строка» и нажмите ОК. (Возможно, вам придется прокрутить вниз, чтобы найти его)
Для Windows 8:
- Перейдите на вкладку «Подробности». Щелкните правой кнопкой мыши по любому из столбцов (например, имена, PID и т. Д.) И выберите «Выбрать столбцы».
- Установите флажок «Командная строка» и нажмите ОК. (Возможно, вам придется прокрутить вниз, чтобы найти его)
Столбец командной строки будет добавлен к отображаемым в данный момент столбцам.
Я на самом деле не понимаю @JesseBarnum, всегда можно изменить размер столбца, чтобы получить полный вид, независимо от длины командной строки, верно? Только если окно достаточно широкое для размера команды. Если команда похожа на процесс Java с длинным путем к классу, это не будет соответствовать ширине окна. Хорошо, спасибо, отметил. Хотя у меня не было этой проблемы, и, кстати, мой диспетчер задач можно прокручивать - не знаю, как у вас :-). Я думаю, что если вы отправите мне пример программы, это можно решить. Это очень недооцененный ответ, даже не подозревал, что это возможно. Я вижу пару комментариев выше о диспетчере задач Windows. Даже если вы установите столбец «Командная строка», чтобы показать, что процесс Java с очень длинной командной строкой будет усечен. НО, вы можете нажать на строку в диспетчере задач и «скопировать» (Ctrl-c) всю строку и вставить ее в текстовый редактор, чтобы увидеть всю командную строку, независимо от ее длины.PowerShell на помощь.
И убить в качестве бонуса:
Вы можете запустить его из powershell напрямую или из ps1, если у вас есть настройки вашей системы. Я подробно описываю неограниченную настройку сценариев: я убиваю зомби с помощью PowerShell, а также другие трюки с PowerShell .
Ого . часть убийства довольно опасна, учитывая название вопроса;) Отрису очень хороший ответ;)Предыдущие ответы хороши, если процесс уже запущен и не скоро завершится. Однако если вам нужно (как я сделал) сделать это, возможно, с процессами, запускаемыми несколько раз и / или быстро завершающимися, или, возможно, регистрировать события в течение более длительного периода времени, есть способ сделать это с помощью Process Monitor .
По сути, он регистрирует различные события в системе, в этом случае мы можем просто отфильтровать событие «Запуск процесса» и имя процесса, который мы хотим отслеживать, как показано ниже:
Затем просто оставьте монитор процесса включенным и делайте все, что вы делаете, чтобы запустить процесс, который вы хотите зарегистрировать В столбце «Сведения» или в столбце «Командная строка» (в зависимости от того, как вы их настраиваете) вы можете видеть аргументы командной строки. Например:
Конечно, таким образом вы можете извлечь гораздо больше связанной информации, такой как, что является рабочим каталогом, какие переменные среды были переданы процессу и т. Д. . Также легко экспортировать результаты в файл.
При использовании CygWin , если я запускаю процесс Python , это пример командной строки:
Но Process Explorer видит только основной exe:
Итак, единственный трюк, который я знаю до сих пор, это найти его через оболочку CygWin Bash pgrep :
Это полезно знать, поскольку CygWin без проблем работает в Windows, и вы можете использовать его для запуска многих программ POSIX и Python.
РЕДАКТИРОВАТЬ: В Windows вам не нужны привилегии администратора для списка задач. В CygWin они вам понадобятся, чтобы иметь возможность просматривать процесс администратора (что мне кажется более логичным: полная командная строка может иметь некоторые параметры, такие как пароли внутри), поэтому мы должны запустить CygWin Bash в режиме администратора с повышенными правами .
РЕДАКТИРОВАТЬ-1: эта проблема не произойдет, если вы запустите Process Explorer от имени администратора. Спасибо, что указали, @Pacerier.
Освоив предыдущие части этой серии материалов, вы узнали о том, что такое bash-скрипты, как их писать, как управлять потоком выполнения программы, как работать с файлами. Сегодня мы поговорим о том, как добавить скриптам интерактивности, оснастив их возможностями по получению данных от пользователя и по обработке этих данных.
Наиболее распространённый способ передачи данных сценариям заключается в использовании параметров командной строки. Вызвав сценарий с параметрами, мы передаём ему некую информацию, с которой он может работать. Выглядит это так:
В данном примере сценарию передано два параметра — «10» и «20». Всё это хорошо, но как прочесть данные в скрипте?
Чтение параметров командной строки
Оболочка bash назначает специальным переменным, называемым позиционными параметрами, введённые при вызове скрипта параметры командной строки:
- $0 — имя скрипта.
- $1 — первый параметр.
- $2 — второй параметр — и так далее, вплоть до переменной $9 , в которую попадает девятый параметр.
Запустим сценарий с параметрами:
Вот что он выведет в консоль.
Вывод параметров, с которыми запущен скрипт
Обратите внимание на то, что параметры командной строки разделяются пробелами.
Взглянем на ещё один пример использования параметров. Тут мы найдём сумму чисел, переданных сценарию:
Запустим скрипт и проверим результат вычислений.
Сценарий, который находит сумму переданных ему чисел
Параметры командной строки не обязательно должны быть числами. Сценариям можно передавать и строки. Например, вот скрипт, работающий со строкой:
Он выведет то, что мы от него ожидаем.
Сценарий, работающий со строковым параметром
Что если параметр содержит пробелы, а нам надо обрабатывать его как самостоятельный фрагмент данных? Полагаем, если вы освоили предыдущие части этого руководства, ответ вы уже знаете. Заключается он в использовании кавычек.
Если скрипту надо больше девяти параметров, при обращении к ним номер в имени переменной надо заключать в фигурные скобки, например так:
Проверка параметров
Если скрипт вызван без параметров, но для нормальной работы кода предполагается их наличие, возникнет ошибка. Поэтому рекомендуется всегда проверять наличие параметров, переданных сценарию при вызове. Например, это можно организовать так:
Вызовем скрипт сначала с параметром, а потом без параметров.
Вызов скрипта, проверяющего наличие параметров командной строки
Подсчёт параметров
В результате скрипт сообщит о том, что ему передано 5 параметров.
Подсчёт количества параметров в скрипте
Эта переменная даёт необычный способ получения последнего из переданных скрипту параметров, не требующий знания их количества. Вот как это выглядит:
Вызовем скрипт и посмотрим, что он выведет.
Обращение к последнему параметру
Захват всех параметров командной строки
В некоторых случаях нужно захватить все параметры, переданные скрипту. Для этого можно воспользоваться переменными $* и $@ . Обе они содержат все параметры командной строки, что делает возможным доступ к тому, что передано сценарию, без использования позиционных параметров.
Переменная $* содержит все параметры, введённые в командной строке, в виде единого «слова».
В переменной $@ параметры разбиты на отдельные «слова». Эти параметры можно перебирать в циклах.
Рассмотрим разницу между этими переменными на примерах. Сначала взглянем на их содержимое:
Вот вывод скрипта.
Переменные $* и $@
Как видно, при выводе обеих переменных получается одно и то же. Теперь попробуем пройтись по содержимому этих переменных в циклах для того, чтобы увидеть разницу между ними:
Взгляните на то, что скрипт вывел в консоль. Разница между переменными вполне очевидна.
Разбор переменных $* и $@ в цикле
Переменная $* содержит все переданные скрипту параметры как единый фрагмент данных, в то время как в переменной $@ они представлены самостоятельными значениями. Какой именно переменной воспользоваться — зависит от того, что именно нужно в конкретном сценарии.
Команда shift
Использовать команду shift в bash-скриптах следует с осторожностью, так как она, в прямом смысле слова, сдвигает значения позиционных параметров.
Когда вы используете эту команду, она, по умолчанию, сдвигает значения позиционных параметров влево. Например, значение переменной $3 становится значением переменной $2 , значение $2 переходит в $1 , а то, что было до этого в $1, теряется. Обратите внимание на то, что при этом значение переменной $0 , содержащей имя скрипта, не меняется.
Воспользовавшись командой shift , рассмотрим ещё один способ перебора переданных скрипту параметров:
Скрипт задействует цикл while , проверяя длину значения первого параметра. Когда длина станет равна нулю, происходит выход из цикла. После проверки первого параметра и вывода его на экран, вызывается команда shift , которая сдвигает значения параметров на одну позицию.
Использование команды shift для перебора параметров
Используя команду shift , помните о том, что при каждом её вызове значение переменной $1 безвозвратно теряется.
Ключи командной строки
Ключи командной строки обычно выглядят как буквы, перед которыми ставится тире. Они служат для управления сценариями. Рассмотрим такой пример:
И проанализируем то, что он выведет в терминал.
Обработка ключей в скрипте
В этом коде использована конструкция case , которая сверяет переданный ей ключ со списком обрабатываемых скриптом ключей. Если переданное значение нашлось в этом списке, выполняется соответствующая ветвь кода. Если при вызове скрипта будет использован любой ключ, обработка которого не предусмотрена, будет исполнена ветвь «*».
Как различать ключи и параметры
Часто при написании bash-скриптов возникает ситуация, когда надо использовать и параметры командной строки, и ключи. Стандартный способ это сделать заключается в применении специальной последовательности символов, которая сообщает скрипту о том, когда заканчиваются ключи и начинаются обычные параметры.
Эта последовательность — двойное тире (--). Оболочка использует её для указания позиции, на которой заканчивается список ключей. После того, как скрипт обнаружит признак окончания ключей, то, что осталось, можно, не опасаясь ошибок, обрабатывать как параметры, а не как ключи. Рассмотрим пример:
Этот сценарий использует команду break для прерывания цикла while при обнаружении в строке двойного тире.
Вот что получится после его вызова.
Обработка ключей и параметров командной строки
Как видно, когда скрипт, разбирая переданные ему данные, находит двойное тире, он завершает обработку ключей и считает всё, что ещё не обработано, параметрами.
Обработка ключей со значениями
По мере усложнения ваших скриптов, вы столкнётесь с ситуациями, когда обычных ключей уже недостаточно, а значит, нужно будет использовать ключи с некими значениями. Например, вызов сценария в котором используется подобная возможность, выглядит так:
Скрипт должен уметь определять, когда вместе с ключами командной строки используются дополнительные параметры:
Вызовем этот скрипт в таком виде:
Посмотрим на результаты его работы.
Обработка параметров ключей
В данном примере в конструкции case обрабатываются три ключа. Ключ -b требует наличия дополнительного параметра. Так как обрабатываемый ключ находится в переменной $1 , соответствующий ему параметр будет находиться в $2 (тут используется команда shift , поэтому, по мере обработки, всё, что передано сценарию, сдвигается влево). Когда с этим мы разобрались, осталось лишь извлечь значение переменной $2 и у нас будет параметр нужного ключа. Конечно, тут понадобится ещё одна команда shift для того, чтобы следующий ключ попал в $1 .
Использование стандартных ключей
При написании bash-скриптов вы можете выбирать любые буквы для ключей командной строки и произвольно задавать реакцию скрипта на эти ключи. Однако, в мире Linux значения некоторых ключей стали чем-то вроде стандарта, которого полезно придерживаться. Вот список этих ключей:
Если вы работаете в Linux, вам, скорее всего, знакомы многие из этих ключей. Использовав их в общепринятом значении в своих скриптах, вы поможете пользователям взаимодействовать с ними, не беспокоясь о чтении документации.
Получение данных от пользователя
Ключи и параметры командной строки — это отличный способ получить данные от того, кто пользуется скриптом, однако в некоторых случаях нужно больше интерактивности.
Иногда сценарии нуждаются в данных, которые пользователь должен ввести во время выполнения программы. Именно для этой цели в оболочке bash имеется команда read .
Эта команда позволяет принимать введённые данные либо со стандартного ввода (с клавиатуры), либо используя другие дескрипторы файлов. После получения данных, эта команда помещает их в переменную:
Обратите внимание на то, что команда echo , которая выводит приглашение, вызывается с ключом -n . Это приводит к тому, что в конце приглашения не выводится знак перевода строки, что позволяет пользователю скрипта вводить данные там же, где расположено приглашение, а не на следующей строке.
Обработка пользовательского ввода
При вызове read можно указывать и несколько переменных:
Вот что выведет скрипт после запуска.
Несколько переменных в команде read
Если, вызвав read , не указывать переменную, данные, введённые пользователем, будут помещены в специальную переменную среды REPLY :
Использование переменной среды REPLY
Если скрипт должен продолжать выполнение независимо от того, введёт пользователь какие-то данные или нет, вызывая команду read можно воспользоваться ключом -t . А именно, параметр ключа задаёт время ожидания ввода в секундах:
Если данные не будут введены в течение 5 секунд, скрипт выполнит ветвь условного оператора else , выведя извинения.
Ограничение времени на ввод данных
Ввод паролей
Иногда то, что вводит пользователь в ответ на вопрос скрипта, лучше на экране не показывать. Например, так обычно делают, запрашивая пароли. Ключ -s команды read предотвращает отображение на экране данных, вводимых с клавиатуры. На самом деле, данные выводятся, но команда read делает цвет текста таким же, как цвет фона.
Вот как отработает этот скрипт.
Ввод конфиденциальных данных
Чтение данных из файла
Команда read может, при каждом вызове, читать одну строку текста из файла. Когда в файле больше не останется непрочитанных строк, она просто остановится. Если нужно получить в скрипте всё содержимое файла, можно, с помощью конвейера, передать результаты вызова команды cat для файла, конструкции while , которая содержит команду read (конечно, использование команды cat выглядит примитивно, но наша цель — показать всё максимально просто, ориентируясь на новичков; опытные пользователи, уверены, это поймут).
Напишем скрипт, в котором используется только что описанный подход к чтению файлов.
Посмотрим на него в деле.
Чтение данных из файла
Тут мы передали в цикл while содержимое файла и перебрали все строки этого файла, выводя номер и содержимое каждой из них.
Итоги
Сегодня мы разобрали работу с ключами и параметрами командной строки. Без этих средств диапазон использования скриптов оказывается чрезвычайно узким. Даже если скрипт написан, что называется, «для себя». Тут же мы рассмотрели подходы к получению данных от пользователя во время выполнения программы — это делает сценарии интерактивными.
В следующий раз поговорим об операциях ввода и вывода.
Читайте также:
- Приложение для установки шрифтов на андроид хуавей
- 123 hp com скачать приложение на андроид бесплатно без регистрации на русском
- Как сделать селфи в приложении почта банк
- Приложение ваш телефон windows 10 как перетаскивать файлы
- Приложению outlook не удается войти в систему exchange 2016