Crie um arquivo bat / cmd e substitua o PATH, em seguida, almoce 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
Estou desenvolvendo um aplicativo no Windows que faz uso dos arquivos DLL
disponíveis na variável PATH
do sistema. Esses DLL
s estão no meu my PATH
para meu ambiente de desenvolvimento. No entanto, o aplicativo em si é portátil e vem com suas próprias dependências. Existe uma maneira de obscurecer variáveis de ambiente de um aplicativo / processo para que eu possa testar meu código para portabilidade sem ter que modificar variáveis globais?
Crie um arquivo bat / cmd e substitua o PATH, em seguida, almoce 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
A resposta de Alex foi útil. Eu converti isso em uma função do PowerShell que posso adicionar ao meu $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
}
Agora, sempre que eu chamar sandbox SOME_COMMAND
, a função esvazia PATH
, executa o comando e restaura a variável novamente.