Подтвердить что ты не робот

Могу ли я установить переменную среды для приложения, используя ярлык в Windows?

У меня возникло ощущение, что я могу добавить каталог в переменную среды PATH в течение всей жизни приложения, но я могу Не узнайте, как это сделать. Можно ли добавить параметр в ярлык Windows, который добавляет каталог в текущее значение PATH для использования связанным приложением?

4b9b3361

Ответ 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, ваша программа готова к работе.