it-swarm.com.de

Kann ich eine Umgebungsvariable für eine Anwendung mithilfe einer Verknüpfung in Windows festlegen?

Ich habe das Gefühl, der Umgebungsvariablen PATH ein Verzeichnis hinzufügen zu können, aber ich kann nicht herausfinden, wie das geht. Ist es möglich, einer Windows-Verknüpfung einen Parameter hinzuzufügen, mit dem ein Verzeichnis an den aktuellen Wert von PATH angehängt wird, damit die verknüpfte Anwendung es verwenden kann?

23
user366203

Lassen Sie die Verknüpfung eine Batchdatei (.cmd) ausführen

  • Legt die Umgebungsvariable fest
  • app ausführen
  • Sie verwenden "START", um die App auszuführen. Dadurch wird die App in einem anderen Prozess gestartet, die Umgebung wird jedoch kopiert. Sie warten nicht bis die App fertig ist.
  • Nun können Sie die Batchdatei beenden.

Sollte so aussehen:

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

Wie hier erläutert: http://www.labs64.com/blog/2012/06/set-environment-variables-in-windows-shortcut/ Können Sie dies auch ohne bat-Datei tun .

Setzen Sie das Ziel auf z.

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

Um zu vermeiden, dass der Befehl Eingabeaufforderung für einen Sekundenbruchteil angezeigt wird, bevor er wieder geschlossen wird, sollten Sie festlegen

Run: Minimized 

auf der Registerkarte Verknüpfung

(Getestet unter Windows 7, Windows 10)

17
Jens

Durch die direkte Verknüpfung mit einer Batchdatei wird eine nervige Konsole erzeugt, die Sie wahrscheinlich vermeiden möchten. Hier ist eine Problemumgehung. Die einfachere Lösung ist die Verwendung der Option "Start minimiert" in Ihrer Verknüpfung. Unter Windows 7 wird jedoch eine temporäre Konsole angezeigt, die Ihre Taskleiste beleuchtet.

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

verknüpfungsziel:

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

Dies ist mit PowerShell problemlos möglich. PowerShell macht Umgebungsvariablen mit dem Präfix $env: verfügbar. Zum Beispiel wollte ich TeamSQL mit benutzerdefinierten Umgebungsvariablen Java_HOME und PATH starten, um eine Verbindung zu einer PostgreSQL-Datenbank herzustellen. TeamSQL ist für diesen Zweck auf JDK/OpenJDK angewiesen.

Zuerst habe ich vorgefertigtes OpenJDK heruntergeladen und das Zip-Archiv mit 7-Zip extrahiert.

Als Nächstes habe ich in PowerShell Folgendes ausgeführt:

$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

Speichern Sie diesen PowerShell-Code in einer .ps1-Datei, und Sie können ihn mit PowerShell ausführen. Da untergeordnete Prozesse die Umgebungsvariablen von der PowerShell-Sitzung übernehmen, ist Ihr Programm einsatzbereit.

0
Trevor Sullivan