У меня возникло ощущение, что я могу добавить каталог в переменную среды PATH в течение всей жизни приложения, но я могу Не узнайте, как это сделать. Можно ли добавить параметр в ярлык Windows, который добавляет каталог в текущее значение PATH для использования связанным приложением?
Могу ли я установить переменную среды для приложения, используя ярлык в Windows?
Ответ 1
Позвольте ярлыку выполнить пакетный файл (.cmd), который
- Устанавливает переменную среды
- выполнить приложение
- Вы используете "СТАРТ" для запуска приложения, это запустит приложение в другом процессе, но оно скопирует среду. Вы не ждете завершения приложения.
- Теперь вы можете выйти из командного файла.
Должно выглядеть так:
@echo off
set path=%path%;C:\My Folder
start "Path to my exe"
Ответ 2
Как объяснено здесь: http://www.labs64.com/blog/2012/06/set-environment-variables-in-windows-shortcut/ вы можете сделать это и без bat файла.
Установите Цель, например:
C:\Windows\System32\cmd.exe /c "SET path=%path%&& START /D ^"C:\Program Files (x86)\Notepad++^" notepad++.exe"
Чтобы не видеть командную строку в течение доли секунды, прежде чем она снова закроется, следует установить
Run: Minimized
на вкладке "Ярлык"
(Проверено на Windows 7, Windows 10)
Ответ 3
Связывание непосредственно с командным файлом порождает раздражающую консоль, которую вы, вероятно, хотите избежать. Здесь обход. Более простым решением является использование опции "Завершить минимизацию" в вашей ссылке, но в Windows 7 вы увидите, что кратковременная консоль освещает панель задач.
start.bat:
@echo off
IF "%1" == "" GOTO Error
IF "%2" == "" GOTO Error
IF NOT EXIST %2 GOTO Error
SET PATH=%1;%PATH%
start %2
GOTO End
:Error
echo Problem!
pause
:End
ярлык:
MyPath = "C:\MyApp"
Set shell = WScript.CreateObject("WScript.Shell")
cmd = "start.bat " & MyPath & " MyApp.exe"
shell.Run cmd, 0, false
Set env = Nothing
Set shell = Nothing
Ответ 4
Вы можете сделать это с PowerShell легко. PowerShell предоставляет переменные среды, используя префикс $env:
. Например, я хотел запустить TeamSQL с пользовательскими PATH
среды JAVA_HOME
и PATH
, чтобы я мог подключиться к базе данных PostgreSQL. Для этой цели TeamSQL зависит от JDK/OpenJDK.
Сначала я скачал предварительно собранный OpenJDK и распаковал архив ZIP с 7-Zip.
Далее в PowerShell я запустил следующее:
$env:JAVA_HOME='C:\Users\TrevorSullivan\Downloads\openjdk\jdk-11.0.2\'
$env:PATH += ';%JAVA_HOME%\bin'
# Launch TeamSQL
& C:\Users\TrevorSullivan\AppData\Local\Programs\TeamSQL\TeamSQL.exe
Сохраните этот код PowerShell в файле .ps1
, и вы можете запустить его с PowerShell. Поскольку дочерние процессы наследуют переменные среды из сеанса PowerShell, ваша программа готова к работе.