
我正在 Windows 上開發一個應用程序,它使用DLL
系統PATH
變數中可用的文件。這些DLL
在我PATH
的開發環境中。然而,應用程式本身是可移植的,帶有自己的依賴項。有沒有辦法隱藏應用程式/進程中的環境變量,以便我可以測試程式碼的可移植性而無需修改全域變數?
答案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
亞歷克斯的回答很有幫助。我將其轉換為 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
,執行命令,並再次恢復變數。