«Зарегистрируйте» .exe, чтобы вы могли запустить его из любой командной строки в Windows


Ответы:


97

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

Вы можете сделать это, либо установив его в папку, которая уже есть, PATHлибо добавив вашу папку в PATH.

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


Этот ответ почти всегда неправильный. По крайней мере, он неполон. В частности, этот подход хорошо работает для установки, но не подходит для удаления. Большинство деинсталляторов удаляют всю переменную PATH при удалении приложения, связанного с этим. Поэтому, если вы пишете действие по установке, чтобы добавить каталог в PATH, вы должны сделать это ПОЛЬЗОВАТЕЛЬСКОЕ действие по установке, которое не будет автоматически удалено универсальным пакетом удаления. Затем сопоставьте этот шаг выборочной установки с шагом удаления, который удаляет только ваш каталог из переменной PATH.
Ким Гентес

21
@KimGentes хорошо, это проблема с деинсталлятором. Хороший деинсталлятор должен привести в порядок. Это не делает ответ неправильным.
ChrisF

3
Я согласен .. это проблема с установщиком. Но так как все установщики делают это с переменными (они не анализируют и не извлекают части записей реестра или переменные ENV), кажется разумным объяснить это. Если точно следовать указаниям, они всегда будут сталкиваться с этой проблемой, что означает, что решение, вероятно, должно всегда включать это предостережение. Никакие установочные пакеты не заботятся об установке и удалении разделов записей реестра или переменных ENV, о которых я знаю, хотя, пожалуйста, дайте мне знать, если есть некоторые, о которых я не знаю.
Ким Гентес

Вместо «установки» среды используйте командный файл с командой SETX: SETX PATH «C: \ Windows» ----- и все готово.
Ставм

3
SETX также опасен, потому что имеет гораздо меньший предел длины, чем сама переменная PATH, и будет обрезаться вместо сбоя.
Бен Фойгт

48

Вы можете добавить следующий реестра ключ :

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\myexe.exe

В этом ключе добавьте строковое значение по умолчанию, содержащее путь к exe-файлу.


1
@sherdim: я очень сомневаюсь в этом. Однако она всегда работала с startкомандой, поэтому вы можете ввести start myexeприглашение cmd.exe. Но myexeя думаю, что одно не должно работать (если только вы не находитесь в каталоге myexeили этот каталог не находится в PATHпеременной окружения).
Андреас Рейбранд,

Я просто создаю небольшой myprog.cmdфайл со следующим содержимым: @START myprog.exe %*это вызывает App Pathsзапись для myprog.exeи передает все аргументы команды. Файл должен быть создан где-то доступным вPATH
Stavr00

1
@sherdim @ andreas-rejbrand Я могу подтвердить, что это не работает на Windows 10, если myexe нет PATH. start myexeработает с этим изменением реестра, без добавления myexe в PATH.
davenpcj

@davenpcj: Действительно. Раздел реестра, о котором я упоминал, относится к оболочке Windows, а не к командной строке. Так start myappработает, как и Win + R myapp, но не обычный myappв cmd.exe.
Андреас Рейбранд

1
Этот ключ работает для запуска из Explorer.exe, если вы пытаетесь из CMD.exe он не найден.
Прамп

41

Вы должны поместить .exeпуть вашего файла в путь переменной среды. Перейдите в «Мой компьютер -> Свойства -> Дополнительно -> Переменные среды -> Путь» и отредактируйте путь, добавив .exeкаталог в путь.

Другое решение, которое я лично предпочитаю, - это использовать RapidEE для более плавного редактирования переменных.


39

Windows 10, 8.1, 8

Откройте меню «Пуск»,

  1. Тип Edit environment variables
  2. Откройте опцию Edit the system environment variables
  3. Нажмите Environment variables...кнопку
  4. Там вы видите два поля, в System Variablesполе найдите pathпеременную
  5. щелчок Edit
  6. появится окно, нажмите New
  7. Введите каталог путь из ваших .exeили batchфайла ( каталог означает исключить имя файла из пути)
  8. Нажмите Okна все открытые окна и перезагрузите систему, перезапустите командную строку .

4
Это единственный ответ, который мне помог. Я бы добавил, что «перезапуск системы» не нужен. Достаточно просто перезапустить cmd.
Джоффри Баратеон

С WinKey + R и введите
SystemPropertiesAdvanced

30

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

Такой командный файл может выглядеть так:

@echo off
start "" "C:\Program Files (x86)\Software\software.exe" %*

1
Вы не возражаете добавить пример такого пакетного файла - было бы неплохо?
petermeissner

Я чувствую, что это лучший вариант, я не хотел добавлять слишком много вещей в переменную пути. Я отредактирую в этом примере ответа такого командного файла.
Дино

1
Проблема с этим заключается в том, что он запускает новую оболочку. Я пытаюсь заставить бинарный файл cygwin запускаться в той же оболочке, что он делает, если я ссылаюсь на него напрямую какC:\cygwin\bin\grep.exe
Johann

4
@Johann: достаньте start "" и начните с пути к исполняемому файлу. Кроме того, для использования в cygwin может потребоваться сценарий оболочки cygwin или символическая ссылка. Или псевдоним оболочки.
Бен Фойгт

Отлично спасибо! Я согласен с другими вашими вариантами внутри cygwin, но в этом случае я пытаюсь использовать бинарный файл cygwin от powershell.
Иоганн

5

Удивительно, что для такой простой задачи в Windows нет простого решения, я создал небольшой сценарий cmd, который можно использовать для определения псевдонимов в окнах (инструкции находятся в самом заголовке файла):

https://gist.github.com/benjamine/5992592

это почти такой же подход, который используется инструментами типа NPM или ruby ​​для регистрации глобальных команд.


5

Допустим, мой exe-файл - C: \ Program Files \ AzCopy \ azcopy.exe.

Команда / CMD / Batch

SET "PATH=C:\Program Files\AzCopy;%PATH%"

PowerShell

$env:path = $env:path + ";C:\Program Files\AzCopy"

Теперь я могу просто набирать и использовать azcopyиз любого места из любой командной строки shell inc, powershell, git bash и т. Д.


3
  • Если вы хотите иметь возможность запускать его внутри cmd.exe или пакетных файлов, вам нужно добавить каталог, в котором находится .exe, в переменную% path% ( System или User )
  • Если вы хотите иметь возможность запустить его в диалоговом окне «Выполнить» (Win + R) или в любом приложении, которое вызывает ShellExecute , достаточно добавить свой exe-файл в ключ пути приложения (это менее подвержено ошибкам во время установки / удаления, а также не загромождает до переменной пути)

3

Вы также можете навсегда (после перезагрузки) добавить переменную Path следующим образом:

Щелкните правой кнопкой мыши Мой компьютер -> Нажмите Свойства -> Нажмите Дополнительные параметры системы -> Нажмите Переменные среды

Ссылка: Изменить системные / пользовательские переменные



2

Поместите его в каталог c: \ windows или добавьте свой каталог к ​​«пути» в настройках среды (Windows-Break - вкладка «Дополнительно»)

С уважением, // т


Вместо размещения пользовательских исполняемых файлов C:\Windowsлучше добавить пользовательский каталог в PATHпеременную окружения.
Роланд Иллиг

Это зависит. Putty.exe ставлю в / windows.
Teson

1

Используйте пакетный файл из 1 строки в вашей установке:

SETX PATH "C:\Windows"

запустить файл bat

Теперь поместите ваш .exe в c: \ windows, и все готово.

Вы можете ввести exename в командной строке, и он запустится.


2
Вместо размещения пользовательских исполняемых файлов C:\Windowsлучше добавить пользовательский каталог в PATHпеременную окружения.
Роланд Иллиг

1

Простые Bash-подобные псевдонимы в Windows

Чтобы получить глобальные псевдонимы bash-like в Windows для приложений, не добавляемых в путь автоматически, без добавления каждого из них в путь вручную, вот самое чистое решение, которое я придумала, которое вносит наименьшее количество изменений в систему и имеет наибольшее количество изменений. гибкость для последующей настройки:

«Установить» путь к псевдонимам

mkdir c:\aliases
setx PATH "c:\aliases;%PATH%"

Добавьте свой псевдоним

Открыть в новом окне оболочки

Для начала C:\path to\my program.exe, передав все аргументы, открыв его в новом окне, создайте c:\aliases\my program.batфайл со следующим содержимым ( подробности о команде запуска см. В разделе Команда запуска NT):

@echo off
start "myprogram" /D "C:\path to\" /W "myprogram.exe" %*

Выполнить в текущем окне оболочки

Для начала C:\path to\my program.exe, передав все аргументы, но запустив его в том же окне (больше похоже на то, как работает bash), создайте c:\aliases\my program.batфайл со следующим содержимым:

@echo off
pushd "C:\path to\"
"my program.exe" %*
popd

Выполнить в текущем окне оболочки 2

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

cd c:\aliases\
mklink "my program.exe" "c:\path to\my program.exe"

0

Добавьте в PATH, шаги ниже (Windows 10):

  1. Введите в строке поиска «environment ...» и выберите «Изменить системные переменные среды», которая открывает окно «Свойства системы».
  2. Нажмите кнопку Переменные среды ...
  3. На вкладке Переменные среды дважды щелкните переменную Path в разделе Системные переменные
  4. Добавьте путь к папке, содержащей EXE-файл, в Путь, дважды щелкнув по пустой строке и вставив путь.
  5. Нажмите ОК и выйдите. Откройте новое приглашение cmd и нажмите команду из любой папки, и она должна работать.

0

Другим способом может быть добавление .LNKк вашему $ PATHEX. Затем просто создайте ярлык для вашего исполняемого файла (т.е. yourshortcut.lnk) и поместите его в любой из каталогов, перечисленных в $ PATH.

ПРЕДУПРЕЖДЕНИЕ ПРИМЕЧАНИЕ: знайте, что любые файлы .lnk, расположенные в любых каталогах, перечисленных в вашем $ PATH, теперь тоже «PATH». По этой причине я бы предпочел метод пакетного файла, упомянутый ранее для этого метода.


-1

Если кто-то ищет это после меня, вот очень простой способ добавить свой Путь.

Отправьте путь к файлу, как показано на рисунке, скопируйте и вставьте его из файла и добавьте конкретный путь в конце с предыдущей точкой с запятой в новый путь. Может потребоваться адаптация до Windows 7, но, по крайней мере, это легкая отправная точка.

Изображение командной строки для экспорта PATH в текстовый файл


Основная часть ответа должна быть в тексте, а не на внешнем скриншоте.
Роланд Иллиг

-3

Лучший способ сделать это - просто установить файл .EXE в папку windows / system32. Таким образом, вы можете запустить его из любого места. Это то же самое место, где можно найти пинг с расширением .exe.


Вместо размещения пользовательских исполняемых файлов C:\Windowsлучше добавить пользовательский каталог в PATHпеременную окружения.
Роланд Иллиг
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.