
DLL
시스템 PATH
변수 에서 사용할 수 있는 파일을 활용하는 응용 프로그램을 Windows에서 개발 중입니다 . 그것들 은 나의 개발 환경을 위한 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의 답변이 도움이 되었습니다. 이를 $profile
항상 사용할 수 있도록 추가할 수 있는 PowerShell 함수로 변환했습니다 .
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
명령을 실행하며 변수를 다시 복원합니다.