“cd D :”가 명령 컨텍스트를 D :로 변경하지 않는 이유는 무엇입니까? [복제]


18

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

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

여기에 이미지 설명을 입력하십시오

그러한 행동에 대한 이유가 있습니까? 내 말은, 이렇게 cd command하지 말아야 합니까? 왜 그렇지 않습니까?


답변:


27

시험:

cd /d d:

/d 다른 정보는 드라이브 문자와 디렉토리를 전환합니다. cd /?


1
이 상황에서 cmd.exe가 DOS의 동작을 모방 한 것처럼 보이므로 각 드라이브의 "현재 디렉토리"가 명확하게 기억됩니다.
LawrenceC

4
이것은 왜 과부가 이런 식으로 작동하는지에 대한 진정한 해답입니다. DOS가 그렇게했기 때문입니다.
KutuluMike

12

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

DOS에서 각 드라이브에는 고유 한 현재 디렉토리가 있으며 cd명령은 드라이브의 현재 디렉토리를 변경합니다. 이것이 현재 드라이브 인 경우 작업 디렉토리도 함께 변경됩니다. 현재 드라이브를 변경하려면 드라이브 문자를 명령으로 지정하면됩니다.

Windows는 실제로이 방식으로 더 이상 작동 하지 않습니다 . 언제든지 현재 디렉토리가 하나만 있습니다. 그러나 명령 셸은 드라이브 당 현재 디렉토리가 여전히 존재한다고 가정합니다. 아마도 이것은 기존 DOS 배치 파일과의 호환성을 유지하기위한 것입니다.

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


6

직접적인 대답은 "그런 식으로 작동하도록 작성되지 않았기 때문"입니다. 간단히 입력 D:하면 원하는 것을 할 수 있습니다.

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.