Добавление .exe в путь по умолчанию без добавления каталога

22

Например, я хочу добавить notepad ++ к моей переменной PATH, однако каталог также содержит uninstall.exeи несколько других файлов / исполняемых файлов, и я не хочу, чтобы они «загрязняли» мой путь. Могу ли я просто добавить один notepad++.exe?

Луис Рис
источник

Ответы:

17

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

@echo off

:: Notepad++ execution

if [%1]==[-h] goto :HELP
if [%1]==[--help] goto :HELP
if [%1]==[/?] goto :HELP
goto :START

:START
start "" /i "%ProgramFiles(x86)%\notepad++\notepad++.exe" %*
goto :EOF

:HELP
echo -------------------------------
echo Notepad++ Command Argument Help
echo -------------------------------
echo Usage :
echo.
echo notepad++ [--help] [-multiInst] [-noPlugins] [-lLanguage] [-nLineNumber] [-cColumnNumber] [-xPos] [-yPos] [-nosession] [-notabbar] [-ro] [-systemtray] [-loadingTime] [fullFilePathName]
echo.
echo     --help : This help message
echo     -multiInst : Launch another Notepad++ instance
echo     -noPlugins : Launch Notepad++ without loading any plugin
echo     -l : Launch Notepad++ by applying indicated language to the file to open
echo     -n : Launch Notepad++ by scrolling indicated line on the file to open
echo     -c : Launch Notepad++ on scrolling indicated column on the file to open
echo     -x : Launch Notepad++ by indicating its left side position on the screen
echo     -y : Launch Notepad++ by indicating its top position on the screen
echo     -nosession : Launch Notepad++ without any session
echo     -notabbar : Launch Notepad++ without tabbar
echo     -ro : Launch Notepad++ and make the file to open read only
echo     -systemtray : Launch Notepad++ directly in system tray
echo     -loadingTime : Display Notepad++ loading time
echo     -alwaysOnTop : Make Notepad++ always on top
echo     fullFilePathName : file name to open (absolute or relative path name)
echo.
goto :EOF

:EOF

Вы можете назвать это notepad++.cmd. Раздел справки позволяет легко получить информацию о коммутаторах.

Я помещаю все такие сценарии и программы командной строки в каталог, который добавляется в %PATH%: C:\Users\Public\Command\ ... и этот каталог синхронизируется со всеми компьютерами и виртуальными машинами.

Paradroid
источник
8

Создайте командный файл с содержимым, подобным следующему:

@"C:\Program Files\Git\bin\git.exe" %*

Это должно быть сохранено в виде .batфайла, например, git.batв каталоге, который находится в вашем PATH.

@подавляет вывод команды на вызывающую оболочку. Кавычки ""не позволяют использовать пробелы как разделители аргументов. %*вставляет любые аргументы в командный файл, вместо исполняемого файла в кавычках.

Теперь вы можете вызвать исполняемый файл, используя часть имени пакетного файла ранее .bat. В моем случае git.

Ссылки:

Мэтт Столяр
источник
Для многих программ, которые будут зависать CMD, пока вы его не закроете. Вы должны использовать, startчтобы избежать этого, как показано в моем ответе.
paradroid
@paradroid: Спасибо, но это стандартное поведение терминала, чтобы оставаться привязанным к родителю, если не спросили. Пользователь должен сделать, start gitа не сделать это для них. Пакетный сценарий будет работать лучше, если он войдет execв запрошенный процесс, но это невозможно в Windows: serverfault.com/questions/315077/… . Я мог бы подготовиться, callно это было бы педантично и в основном бессмысленно.
Мэтт Столяр
3

Перетащите ярлык notepad++.exeк C:\Windows\System32.


В качестве альтернативы, как предлагает @Synetech inc., Вы можете поместить свои ярлыки в отдельный каталог (например C:\Shortcuts), а затем добавить этот каталог в %PATH%:

setx PATH "%PATH%;C:\Shortcuts"

Как указывают некоторые комментарии, это работает только из диалога «Выполнить». Чтобы получить ярлыки для запуска из командной строки, необходимо добавить расширение ярлыка (.LNK) в переменную среды PATHEXT.

setx PATHEXT %pathext%;.LNK

Ссылки:

Как я могу легко запускать приложения с помощью диалогового окна «Выполнить»?

Матин Улхак
источник
1
Это предпочтительное решение (в отличие от пакетного файла); создайте для него ярлык в (другом) каталоге - не загрязняйте каталоги Windows! У меня есть папка специально для этого называется Shortcuts.
Synetech
1
Это неправильный синтаксис для setx. Вы не используете знак равенства, и IIRC, вам нужно заключить весь путь в кавычки, если в текущем %PATH%есть пробелы (что будет).
Парадроид
И не SETXиспользуются ли тильды для переменных вместо процентов, чтобы не расширять их? Я знаю, что некоторые инструменты настройки env-var делают ...
Synetech
2
Это не работает По умолчанию (я перетаскиваю git.exe), «git - Ярлык», переименование этого в комбинации «git.exe», «git», «git.cmd» и т. Д. Не имеет никакого эффекта. Это не признает ярлык.
Мэтт Столяр
3
Это работает только при вызове из Run Asдиалогового окна, это не работает из командной строки.
Мэтт Столяр
1

Просто создайте символическую ссылку, используя mklinkв папке в пути.

например (в командной строке администратора)

mklink "C:\Users\Me\Documents\Paths\np.exe" "C:\Program Files (x86)\Notepad++\notepad++.exe"
Луиджи Плинге
источник
0

Раздел реестра «Пути к приложениям» делает именно это: установите путь к notepad ++. Exe в «\ program files \ ...», и вы сможете запускать его из Start-Run, cmd, ... как любой исполняемый файл из каталог в% PATH%.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

Ссылка: /programming/4822400/register-an-exe-so-you-can-run-it-from-any-command-line-in-windows

patraulea
источник
Это не сделает его исполняемым из cmd - только из start-run, или в cmd вы должны поставить перед ним префикс «start», как в «start myapp.exe»
Tahir Hassan
Согласовано, что в командной строке отсутствует способность распознавать эту переменную. PowerShell распознает это. Это решение, что более важно, относится только к каталогу и, следовательно, не по теме.
Тодд Партридж
0

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

  1. Установите расширение оболочки ссылки (подробнее здесь )

  2. Создайте где-нибудь папку для хранения всех ваших ярлыков, как предлагает Мартин, и добавьте их в свой %PATH%. Я создал C:\Shortcutsи использовал Rapid Environment Editor, чтобы добавить его в мой PATH.

  3. Щелкните правой кнопкой мыши файл, который вы хотите добавить в свой путь (в проводнике), и нажмите «Выбрать источник ссылки»

  4. Щелкните правой кнопкой мыши в папке, которую вы только что создали, и нажмите Drop As > Symbolink Link.

  5. Переименуйте ссылку Symbolink, если хотите.

Вот и все. Теперь вы должны иметь доступ к вашей программе через командную строку. Если вы только что добавили новую папку в PATH, вам придется перезапустить cmd.exe или Cmder или ConEmu или все, что вы используете. После этого вы можете добавлять новые программы без перезагрузки.

mpen
источник