Windows에서 단일 명령에 대한 환경 변수를 어떻게 설정합니까? [복제] 답변이 있습니다

ENVVAR=abc commandUnix 와 같이 Windows에서 단일 명령에 대한 환경 변수를 설정하는 방법이 있습니까?

setWindows에서 명령으로 설정 한 변수 는 다음 명령에 남아있는 것처럼 보이지만 이것이 원하는 것은 아닙니다.



답변

단일 명령에 환경 변수를 설정하는 방법이 있습니까?

현재 cmd쉘에서 :

변수를 직접 지워야합니다.

set ENVVAR=abc && dir & set ENVVAR=

배치 파일에서 :

setlocal및 을 사용할 수 있습니다 endlocal.

@echo off
setlocal
  set ENVVAR=abc && dir
endlocal

자식 cmd셸을 사용하십시오 .

cmd /c자식 셸을 만드는 데 사용할 수 있습니다 .

변수는 자식 쉘에서 설정되며 부모 쉘에 영향을 미치지 않습니다 ( jpmc26 의 주석에서 지적한 바와 같이 ).

cmd /C "set ENVVAR=abc && dir"

추가 자료

  • Windows CMD 명령 행의 AZ 색인 -Windows cmd 행과 관련된 모든 것에 대한 훌륭한 참조 자료.
  • cmd- 새 CMD 셸을 시작하고 선택적으로 명령 / 실행 프로그램을 실행합니다.
  • endlocal- 배치 파일에서 환경 변경의 현지화를 종료합니다. 한 배치 파일에서 다른 배치 파일로 변수를 전달하십시오.
  • 리디렉션 -리디렉션 연산자.
  • set -CMD 환경 변수를 표시, 설정 또는 제거합니다. SET로 변경 한 내용은 현재 CMD 세션 동안 만 유지됩니다.
  • setlocal- 배치 파일에서 환경 변수의 가시성을 제어하는 ​​옵션을 설정합니다.