Windows의 명령 프로세서 (cmd.exe)에 대해 동적으로 평가되는 환경 변수를 설정하려면 어떻게합니까?


4

Windows 명령 프로세서 (cmd.exe)는 다음과 같은 환경 변수를 지원합니다. USERNAME 과 USEPROFILE. 이 변수의 값은 설정 한 후에 항상 동일합니다. 하지만 내가 실행하면 echo %TIME% 나는 '동적 인'가치를 얻는다. 환경 변수 구문에 대한 실행 경로가 있으므로 동적 값이 발생할 수 있습니다. (운영 체제가 실제로 TIME 매초마다 변수. 하지만 저는 그렇게 생각하지 않습니다. TIME 실행시 나열되지 않습니다. set 명령.)

그렇다면 평가할 때 스크립트 나 프로그램을 실행하는 환경 변수를 어떻게 설정합니까?

배경:

현재 작업 디렉토리를 기반으로 명령 프롬프트에 정보를 추가하려고합니다. Windows 명령 프로세서는 PROMPT 환경 변수를 프롬프트로 표시합니다. 역동적 인 환경 변수를 만들 수 있다면 내가 원하는 것을 얻을 수있을 것입니다.


왜냐하면 아무것도 그러나 cmd.exe ~을 제공하다 %TIME%, 그것은 가장 특별한 구현 일 것입니다. 수정하지 않고 복제 할 수는 없을 것입니다. cmd.exe.
— Daniel B

CWD를 기반으로 환경 변수를 설정하는 것은 의미가 없으므로 cmd.exe를 각각 다른 작업 디렉토리로 여러 번 열어 둘 수 있습니다. 환경 변수는 모든 환경에서 동일해야합니다.
— JeffUK

@JeffUK 이것이 동적 환경 변수를 갖는 방법을 찾고 있기 때문에 현재 작업 디렉토리가 평가 될 때 고려할 수 있습니다. %CD% 동적 환경 변수와 관련된 내장 예제입니다.
— Michiel van Oosterhout

@DanielB 다른 동적 환경 변수는 다음과 같은 다른 프로세스에서 사용할 수 있습니다. __APPDIR__. Windows가 사용자 정의 된 동적 환경 변수를 지원하도록 확장 될 수 없다면 놀라지 않을 것입니다. 그러나 여기에 묻지 않고 나는 그 점에 대해 확신하지 못할 것입니다. 감사
— Michiel van Oosterhout

TIME과 같은 동적 환경 변수는 매우 특별하며 cmd.exe와 같은 명령 해석기에서만 존재합니다. 다른 프로그램에서 액세스하면 아무 것도 반환하지 않습니다. Powershell 내에서 사용하기 위해 동적 환경 변수를 정의 할 수 있지만 cmd.exe에서는 사용할 수 없다고 생각합니다.
— LMiller7
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.