有沒有辦法將應用程式與環境變數隔離以測試程式碼?

有沒有辦法將應用程式與環境變數隔離以測試程式碼?

我正在 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,執行命令,並再次恢復變數。

相關內容