"cd D:"가 명령 컨텍스트를 D:로 변경하지 않는 이유는 무엇입니까?

"cd D:"가 명령 컨텍스트를 D:로 변경하지 않는 이유는 무엇입니까?

가능한 중복:
Windows 명령줄에서 cd ​​명령을 사용하면 D:\로 이동할 수 없습니다.

Windows 명령 프롬프트에서 디렉터리 컨텍스트를 다른 드라이브(D, E, F 등..)로 변경하려고 할 때마다 "Drive letter":\실제로 변경하려면 명령을 사용해야 합니다. 내가 시도하면"CD 명령"그것에 대해 cd H:\나를 위해 H:\를 에코하고 아무것도 하지 않습니다.

여기에 이미지 설명을 입력하세요.

그러한 행동에는 어떤 이유가 있습니까? 내 말은, cd command이 일을 하면 안 된다는 건가요? 왜 그렇지 않습니까?

답변1

노력하다:

cd /d d:

/d또한 드라이브 문자와 디렉터리도 전환합니다. 기타 정보는 다음을 참조하세요.cd /?

답변2

Windows가 이런 식으로 동작하는 이유는 DOS가 그런 식으로 동작했기 때문입니다.

DOS에서는 각 드라이브에 고유한 현재 디렉터리가 있으며, cd명령은 드라이브의 현재 디렉터리를 변경합니다. 만약 그게 현재의 상황이라면운전하다을 클릭하면 작업 디렉터리도 함께 변경됩니다. 현재 드라이브를 변경하려면 드라이브 문자를 명령으로 지정하면 됩니다.

Windows는 실제로 그렇지 않습니다.일하다이 방법은 더 이상 -- 언제든지 하나의 현재 디렉터리만 갖게 됩니다. 그러나 명령 셸은 여전히 ​​드라이브당 현재 디렉터리가 있는 것처럼 가장하기 위해 많은 노력을 기울입니다. 아마도 이는 기존 DOS 배치 파일과의 호환성을 유지하기 위한 것입니다.

DOS가 이런 방식으로 작동하는 이유는 DOS의 가장 초기 버전과 그 이전의 CP/M으로 거슬러 올라갑니다. 자세한 내용은 다음에서 확인할 수 있습니다.레이먼드 첸의 블로그.

답변3

간단한 대답은 "왜냐하면 그런 식으로 작동하도록 작성되지 않았기 때문입니다"입니다. 간단히 입력하면 D:원하는 대로 됩니다.

흥미롭게도 다음을 입력하면 cd D:\somedir실제로 D:의 현재 디렉터리가 \data로 변경되지만 현재 명령 프롬프트는 D:로 변경되지 않습니다.

관련 정보