아래 배치 스크립트를 실행할 때
@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
여전히 잘 작동합니다.