"Зареєструйте" .exe, щоб ви могли запустити його з будь-якого командного рядка в Windows


Відповіді:


97

Вам потрібно переконатися, що exe знаходиться в папці, яка знаходиться в PATHзмінній оточення.

Це можна зробити, встановивши його в папку, яка вже є, PATHабо додавши папку доPATH .

Ви можете зробити так, щоб ваш інсталятор це зробив - але вам потрібно буде перезапустити машину, щоб переконатися, що вона піднімається.


Ця відповідь майже завжди є неправильною. Принаймні, вона неповна. Зокрема, цей підхід добре працює для ВСТАНОВЛЕННЯ, але не добре для видалення. Більшість деінсталяторів ШИВІДУЄ всю змінну PATH під час видалення програми, пов’язаної з цим. Отже, якщо ви пишете дію встановлення, щоб додати dir до PATH, вам слід зробити це ЗАМОВЛЕННЯ встановлення, яке не видаляється автоматично загальним пакетом видалення. Потім порівняйте цей крок встановлення на замовлення з кроком видалення, який видаляє лише ваш dir зі змінної PATH.
Кім Гентес

21
@KimGentes добре, що проблема з видаленням. Хороший деінсталятор повинен добре привести в порядок. Це не робить відповідь неправильним.
ChrisF

3
Я згоден .. це проблема з інсталятором. Але оскільки всі інсталятори роблять це зі змінними (вони не розбирають і не витягують частини записів реєстру чи ENV VARIABLES), видається доцільним пояснити це. Якщо точно слідувати вказівкам, вони завжди будуть стикатися з цим питанням, а це означає, що рішення, ймовірно, завжди повинно містити цей застереження. Жоден інсталяційний пакет не бере участь у встановленні та видаленні розділів записів у реєстрі або змінних 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, його не знайдено.
prampe

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

29

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

Такий пакетний файл може виглядати приблизно так:

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

1
Ви не проти додати приклад такого пакетного файлу - було б непогано?
petermeissner

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

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

4
@Johann: Вийміть start "" і просто починайте шлях до виконуваного файлу. Також для використання в cygwin вам може знадобитися скрипт оболонки cygwin або симпосилання. Або псевдонім оболонки.
Ben Voigt

Ідеально, дякую! Я погоджуюсь з вашими іншими варіантами в межах cygwin, але в цьому випадку я намагаюся використовувати бінарний файл cygwin від powershell.
Йоганн

5

дивно, що для такого простого завдання для Windows немає простого рішення, я створив цей маленький сценарій cmd, який ви можете використовувати для визначення псевдонімів для Windows (інструкції містяться в самому заголовку файлу):

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

це майже той самий підхід, який застосовують такі інструменти, як NPM або рубінні дорогоцінні камені для реєстрації глобальних команд.


5

Скажімо, мій exe - це C: \ Program Files \ AzCopy \ azcopy.exe

Command / CMD / Batch

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

PowerShell

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

Тепер я можу просто ввести та використовувати azcopyз будь-якого місця з будь-якого командного рядка оболонки inc, shellhell, git bash тощо


3
  • Якщо ви хочете мати змогу запустити його всередині cmd.exe або пакетних файлів, вам потрібно додати каталог .exe знаходиться у змінній% path% ( Система або Користувач )
  • Якщо ви хочете мати змогу запустити його у діалоговому вікні «Запустити» (Win + R) або будь-якій програмі, яка викликає ShellExecute , достатньо додати ваш EXE до ключа шляхів до програми (Це менше помилок, схильних під час встановлення / видалення, а також не захаращується вгору до змінної шляху)

3

Ви також можете постійно (після перезавантаження) додати до змінної Path таким чином:

Клацніть правою кнопкою миші Мій комп'ютер -> Клацніть Властивості -> Клацніть Додаткові параметри системи -> Клацніть Змінні середовища

Довідка: Змінення змінних системи / користувача



2

Помістіть його в каталог c: \ windows або додайте свій каталог до "шляху" в налаштуваннях середовища (windows-break - вкладка розширена)

з повагою, // т


Замість того, щоб розміщувати власні виконувані файли C:\Windows, слід скоріше додати спеціальний каталог до PATHзмінної середовища.
Roland Illig

Це залежить. Я вкладаю / windows.
Тесон

1

Використовуйте пакетний файл у 1 рядку для встановлення:

SETX PATH "C:\Windows"

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

Тепер помістіть .exe в c: \ windows, і ви закінчили.

ви можете ввести 'exename' у командному рядку, і він запустить його.


2
Замість того, щоб розміщувати власні виконувані файли C:\Windows, слід скоріше додати спеціальний каталог до PATHзмінної середовища.
Roland Illig

1

Прості псевдоніми Bash у Windows

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

"Встановити" свій шлях Псевдонімів

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

Додайте свій псевдонім

Відкрити у новому вікні оболонки

Для початку C:\path to\my program.exe, передавши всі аргументи, відкривши його у новому вікні, створіть c:\aliases\my program.batфайл із таким вмістом ( детальну інформацію про стартову команду див. У команді NT Start ):

@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

Якщо вам не потрібна програма, щоб взагалі змінити поточний робочий каталог для роботи, ви можете просто додати симпосилання до виконуваного файлу всередині вашої папки псевдонімів:

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

0

Додайте до PATH, кроки нижче (Windows 10):

  1. Введіть у рядок пошуку "середовище ..." та оберіть Змінити змінні системного середовища, що відкриє вікно Властивості системи
  2. Натисніть кнопку Змінні середовища ...
  3. На вкладці Змінні середовища двічі клацніть змінну Шлях у розділі Системні змінні
  4. Додайте шлях до папки, що містить .exe до Шляху, двічі клацнувши на порожньому рядку та вставте шлях.
  5. Клацніть ОК та вийдіть. Відкрийте новий cmd-рядок і натисніть команду з будь-якої папки, і вона повинна працювати.

0

Інший спосіб може бути через додавання .LNK до $ PATHEX. Тоді просто створіть ярлик для вашого виконуваного файлу (тобто: vašhortcut.lnk) та вставте його в будь-який із каталогів, перелічених у $ PATH.

ПОПЕРЕДЖЕННЯ ПРИМІТКА: Знайте, що будь-які .lnk-файли, що знаходяться в будь-яких каталогах, перелічених у вашому $ PATH, тепер також "PATH'ed". З цієї причини я віддаю перевагу методу пакетного файлу, який згадувався раніше про цей метод.


-1

Якщо хтось шукає цього після мене, ось справді простий спосіб додати свій Шлях.

Надішліть шлях до файлу, як показано на зображенні, скопіюйте та вставте його з файлу та додайте конкретний шлях на кінці з попередньою комою до нового шляху. Це може знадобитися для адаптації до Windows 7, але принаймні це легка відправна точка.

Зображення командного рядка для експорту PATH у текстовий файл


Істотна частина відповіді повинна містити текст, а не зовнішній знімок екрана.
Roland Illig

-3

Найкращий спосіб зробити це просто встановити .EXE-файл у папку windows / system32. таким чином ви можете запустити його з будь-якого місця. Це те саме місце, де можна знайти подібний ping .exe


Замість того, щоб розміщувати власні виконувані файли C:\Windows, слід скоріше додати спеціальний каталог до PATHзмінної середовища.
Roland Illig
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.