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?
Laissez le raccourci exécuter un fichier de commandes (.cmd), qui
Devrait ressembler à ceci:
@echo off
set path=%path%;C:\My Folder
start "Path to my exe"
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)
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
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.