배치 파일을 사용하여 현재 작업 디렉토리를 변경하는 방법


110

배치 파일 작성에 도움이 필요합니다. 다음과 같이 변수 루트에 저장된 경로가 있습니다.

set root=D:\Work\Root

그런 다음 작업 디렉토리를 다음과 같이이 루트로 변경합니다.

cd %root%

D 드라이브의 어느 곳에서나이 배치 파일을 실행하면 성공적으로 수행됩니다. 그러나 다른 드라이브에서 동일한 배치 파일을 실행하면 cd % root %가 작동하지 않습니다.

루트 변수에서 드라이브 문자를 가져올 수있는 방법이 있습니까? 그런 다음 현재 디렉토리를이 드라이브로 먼저 변경하면 cd % root %가 작동합니다.

답변:


160

/D드라이브도 변경하도록 지정 하십시오.

CD /D %root%

1
다른 답변은 \d(소문자) 둘 중 하나에 차이가 있습니까? 옵션이 대소 문자를 구분하지 않습니까?
josch

3
@josch : 우리는 CMD의 내부 명령에 대해 얘기하는 경우 예, 다음과 같은 매개 변수 스위치 /D위는 대소 문자를 구분하지 않는다 ( /D= /d), 단지 명령 자신과 같은 ( CD= cd). 이는 모든 외부 Windows 명령 줄 유틸리티 (예 FINDSTR: SORT등) 에도 해당한다고 생각합니다 . 반면에 타사 도구는 대소 문자를 구분하는 매개 변수를 사용할 수 있습니다.
Andriy M

스스로 대답 할 가치가 없지만, 당신은 할 수 set "root=/d D:\Work\Root"있고 cd %root%, 심지어는 set "root=cd /d D:\Work\Root"그냥%root%
Stephan

40

cd /d %root%드라이버 문자를 전환하고 디렉토리를 변경 하는 데 사용하십시오 .

또는 pushd %root%디렉토리를 변경할 때 드라이브 문자를 전환하고 스택에 이전 디렉토리를 저장하여 popd다시 전환 하는 데 사용할 수 있습니다 .

참고 pushd또한 네트워크 공유 디렉토리를 변경할 수 있습니다. 실제로 네트워크 드라이브를 매핑 한 다음 popd해당 디렉토리에 대해를 실행할 때 매핑을 해제합니다 .



12

더 간단한 구문은 다음과 같습니다.

% root % 푸시


3
와, 모든 솔루션 중에서 가장 낮은 순위는 실제로 매력처럼 작동 한 솔루션입니다! 감사!
아르토 Kalishian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.