我正在 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
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
,运行命令,然后再次恢复变量。