
Ich entwickle eine Anwendung unter Windows, die DLL
in der Systemvariable verfügbare Dateien verwendet PATH
. Diese DLL
Dateien befinden sich in meiner PATH
Entwicklungsumgebung. Die Anwendung selbst ist jedoch portabel und wird mit ihren eigenen Abhängigkeiten ausgeliefert. Gibt es eine Möglichkeit, Umgebungsvariablen einer Anwendung/eines Prozesses zu verbergen, sodass ich meinen Code auf Portabilität testen kann, ohne globale Variablen ändern zu müssen?
Antwort1
Erstellen Sie eine Bat/cmd-Datei und überschreiben Sie PATH. Starten Sie dann Ihre Anwendung aus derselben Bat/cmd-Datei.
@echo off
Path=C:\TestPath
REM test it that is was overridden
echo %Path%
REM Lunch your app below
c:\path\to\your\app.exe
Antwort2
Alex‘ Antwort war hilfreich. Ich habe das in eine PowerShell-Funktion umgewandelt, die ich zu meiner hinzufügen kann, $profile
damit sie immer verfügbar ist:
function sandbox {
Write-Output "$args"
$tempPATH = $env:PATH
$env:PATH = ""
if ("$args"[0] -eq '"') { iex "& $args" }
else { iex "$args" }
$env:PATH = $tempPATH
}
Wenn ich jetzt also aufrufe sandbox SOME_COMMAND
, leert die Funktion PATH
, führt den Befehl aus und stellt die Variable wieder her.