
Estou desenvolvendo uma aplicação no Windows que utiliza DLL
arquivos disponíveis na PATH
variável do sistema. Esses DLL
estão no PATH
meu ambiente de desenvolvimento. No entanto, o aplicativo em si é portátil e vem com suas próprias dependências. Existe uma maneira de ocultar variáveis de ambiente de um aplicativo/processo para que eu possa testar a portabilidade do meu código sem precisar modificar variáveis globais?
Responder1
Crie um arquivo bat/cmd e substitua PATH e, em seguida, armazene seu aplicativo a partir do mesmo arquivo 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
Responder2
A resposta de Alex foi útil. Converti isso em uma função do PowerShell que posso adicionar à minha $profile
para que esteja sempre disponível:
function sandbox {
Write-Output "$args"
$tempPATH = $env:PATH
$env:PATH = ""
if ("$args"[0] -eq '"') { iex "& $args" }
else { iex "$args" }
$env:PATH = $tempPATH
}
Então agora, sempre que eu chamo sandbox SOME_COMMAND
, a função esvazia PATH
, executa o comando e restaura a variável novamente.