
DLL
私は、システム変数で利用可能なファイルを使用する Windows 上のアプリケーションを開発していますPATH
。これらのDLL
ファイルは、開発環境の myPATH
にあります。ただし、アプリケーション自体は移植可能で、独自の依存関係とともに出荷されます。グローバル変数を変更せずにコードの移植性をテストできるように、アプリケーション/プロセスから環境変数を隠す方法はありますか?
答え1
bat/cmdファイルを作成し、PATHを上書きして、同じbat/cmdファイルからアプリケーションを起動します。
@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
答え2
Alex の回答は役に立ちました。これを PowerShell 関数に変換して、$profile
いつでも利用できるように追加しました。
function sandbox {
Write-Output "$args"
$tempPATH = $env:PATH
$env:PATH = ""
if ("$args"[0] -eq '"') { iex "& $args" }
else { iex "$args" }
$env:PATH = $tempPATH
}
これで、 を呼び出すたびにsandbox SOME_COMMAND
、関数は を空にしPATH
、コマンドを実行して、変数を再び復元します。