% HOMEDRIVE %가 예상 출력을 제공하지 않습니다 실행할 때 @echo off cd /d D:\Home\Folder echo

아래 배치 스크립트를 실행할 때

@echo off
cd /d D:\Home\Folder
echo %HOMEDRIVE%
pause

출력으로 H : 를 얻습니다 . 그러나 이상적으로는 D : 이어야합니다 . 왜 그래야만하지?



답변

두 가지 다른 명령을 실행하고 동일한 결과를 기대합니다.

첫 번째를 입력 할 필요가 없으며 두 번째 명령문은 여전히 ​​H :입니다.

로그인시 % HOMEDRIVE % 가 결정 되기 때문 입니다. 도메인 컨트롤러에서 설정하거나 로컬 설정일 수 있습니다.

현재 폴더를 반환하려면 명령을 입력 cd하거나echo %CD%

변경하려는 경우 %를 HOMEDRIVE %를 , 예를 들어, 다른 뭔가로 현재 폴더를 사용 SET HOMEDRIVE=%CD%하거나 직접 :SET HOMEDRIVE=D:\Home\Folder

프로그램이 % HOMEDRIVE % 가 H : 인 것으로 예상하면 % HOMEDRIVE % 를 설정 하면 예기치 않은 결과가 발생할 수 있습니다 .


답변

현재 드라이브를 확인하려면 임시로 루트로 이동하여 현재 디렉토리를 저장 한 후 다음과 같이 돌아가십시오.

pushd \
set MYDRIVE=%CD%
popd

MYDRIVE(동안 변수는 그것의 끝에 슬래시를해야합니다 HOMEDRIVE하지 않습니다)하지만, Windows는 같은 액세스를 시도하는 바람 때문에 경우에도, 경로에 추가 슬래시를 무시 D:\\some\path여전히 잘 작동합니다.


답변