Windows 명령 프로세서 (cmd.exe)는 다음과 같은 환경 변수를 지원합니다. USERNAME
과 USEPROFILE
. 이 변수의 값은 설정 한 후에 항상 동일합니다. 하지만 내가 실행하면 echo %TIME%
나는 '동적 인'가치를 얻는다. 환경 변수 구문에 대한 실행 경로가 있으므로 동적 값이 발생할 수 있습니다. (운영 체제가 실제로 TIME
매초마다 변수. 하지만 저는 그렇게 생각하지 않습니다. TIME
실행시 나열되지 않습니다. set
명령.)
그렇다면 평가할 때 스크립트 나 프로그램을 실행하는 환경 변수를 어떻게 설정합니까?
배경:
현재 작업 디렉토리를 기반으로 명령 프롬프트에 정보를 추가하려고합니다. Windows 명령 프로세서는 PROMPT
환경 변수를 프롬프트로 표시합니다. 역동적 인 환경 변수를 만들 수 있다면 내가 원하는 것을 얻을 수있을 것입니다.
CWD를 기반으로 환경 변수를 설정하는 것은 의미가 없으므로 cmd.exe를 각각 다른 작업 디렉토리로 여러 번 열어 둘 수 있습니다. 환경 변수는 모든 환경에서 동일해야합니다.
—
JeffUK
@JeffUK 이것이 동적 환경 변수를 갖는 방법을 찾고 있기 때문에 현재 작업 디렉토리가 평가 될 때 고려할 수 있습니다.
—
Michiel van Oosterhout
%CD%
동적 환경 변수와 관련된 내장 예제입니다.
@DanielB 다른 동적 환경 변수는 다음과 같은 다른 프로세스에서 사용할 수 있습니다.
—
Michiel van Oosterhout
__APPDIR__
. Windows가 사용자 정의 된 동적 환경 변수를 지원하도록 확장 될 수 없다면 놀라지 않을 것입니다. 그러나 여기에 묻지 않고 나는 그 점에 대해 확신하지 못할 것입니다. 감사
TIME과 같은 동적 환경 변수는 매우 특별하며 cmd.exe와 같은 명령 해석기에서만 존재합니다. 다른 프로그램에서 액세스하면 아무 것도 반환하지 않습니다. Powershell 내에서 사용하기 위해 동적 환경 변수를 정의 할 수 있지만 cmd.exe에서는 사용할 수 없다고 생각합니다.
—
LMiller7
cmd.exe
~을 제공하다%TIME%
, 그것은 가장 특별한 구현 일 것입니다. 수정하지 않고 복제 할 수는 없을 것입니다.cmd.exe
.