Existe uma maneira de isolar um aplicativo de variáveis ​​de ambiente para testar código?

Existe uma maneira de isolar um aplicativo de variáveis ​​de ambiente para testar código?

Estou desenvolvendo uma aplicação no Windows que utiliza DLLarquivos disponíveis na PATHvariável do sistema. Esses DLLestão no PATHmeu 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 $profilepara 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.

informação relacionada