web-dev-qa-db-fra.com

Puis-je définir une variable d'environnement pour une application à l'aide d'un raccourci sous Windows?

J'ai l'impression que je devrais pouvoir ajouter un répertoire à la variable d'environnement CHEMIN sur la durée de vie de l'application, mais je ne parviens pas à savoir comment faire cela. Est-il possible d'ajouter un paramètre à un raccourci Windows qui ajoute un répertoire à la valeur actuelle de PATH à utiliser par l'application liée?

23
user366203

Laissez le raccourci exécuter un fichier de commandes (.cmd), qui

  • Définit la variable d'environnement
  • exécuter l'application
  • Vous utilisez "START" pour exécuter l'application, cela démarrera l'application dans un autre processus, mais copiera l'environnement. Vous n'attendez pas que l'application se termine.
  • Vous pouvez maintenant quitter le fichier de commandes.

Devrait ressembler à ceci:

@echo off
set path=%path%;C:\My Folder
start "Path to my exe"
21
GvS

Comme expliqué ici: http://www.labs64.com/blog/2012/06/set-environment-variables-in-windows-shortcut/ Vous pouvez le faire aussi sans fichier bat .

Définissez Target sur, par exemple:

C:\Windows\System32\cmd.exe /c "SET path=%path%&& START /D ^"C:\Program Files (x86)\Notepad++^" notepad++.exe"

Pour éviter de voir la commande Invite pendant une fraction de seconde avant de la refermer, vous devez définir

Run: Minimized 

sur l'onglet Raccourci

(Testé sur Windows 7, Windows 10)

17
Jens

La liaison directe à un fichier de commandes génère une console gênante que vous souhaitez probablement éviter. Voici une solution de contournement. La solution la plus simple consiste à utiliser l'option "Démarrer minimisé" dans votre lien, mais sous Windows 7, une console momentanée illumine votre barre des tâches.

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

cible de raccourci:

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
3
Will Bickford

Vous pouvez le faire facilement avec PowerShell. PowerShell expose les variables d'environnement à l'aide du préfixe $env:. Par exemple, je voulais lancer TeamSQL avec des variables d’environnement personnalisées Java_HOME et PATH afin de pouvoir me connecter à une base de données PostgreSQL. TeamSQL dépend de JDK/OpenJDK à cette fin.

Tout d'abord, j'ai téléchargé OpenJDK pré-construit et extrait l'archive Zip avec 7-Zip.

Ensuite, dans PowerShell, j'ai exécuté ce qui suit:

$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

Stockez ce code PowerShell dans un fichier .ps1 et vous pouvez l'exécuter avec PowerShell. Comme les processus enfants héritent des variables d'environnement de la session PowerShell, votre programme est prêt à fonctionner.

0
Trevor Sullivan