코드 테스트를 위해 환경 변수에서 애플리케이션을 분리할 수 있는 방법이 있습니까?

코드 테스트를 위해 환경 변수에서 애플리케이션을 분리할 수 있는 방법이 있습니까?

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명령을 실행하며 변수를 다시 복원합니다.

관련 정보