%EC%97%90%EC%84%9C%20%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B8%8C%20%EB%AC%B8%EC%9E%90%EB%A5%BC%20%EB%B3%80%EA%B2%BD%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%20.png)
cd
무엇이 이 문제를 촉발했는지는 확실하지 않지만 Windows 10에서 명령 프롬프트를 사용하는 동안 C: 이외의 드라이브 문자에 대한 명령을 사용하여 드라이브를 변경할 수 없다는 것을 발견했습니다 . 또한 대상 드라이브에서 특정 폴더로 디렉터리를 변경하려고 할 때 자동 완성 기능이 제대로 작동하지만 디렉터리 변경이 발생하지 않는 것으로 나타났습니다.
디스크 관리 도구 및 실제 cmd 프롬프트 명령의 스크린샷은 다음과 같습니다.
이 동작은 PowerShell에 적용되지 않으므로 드라이브를 성공적으로 변경할 수 있습니다.
답변1
그것은 정상입니다. 역사적인 이유로, 그것은 단지CD명령은 Cmd.exe에서 작동합니다. 이는 MS-DOS COMMAND.COM에서도 작동하는 방식이기 때문입니다. 디렉토리 변경~이다기억하지만(MS-DOS처럼 Cmd가 드라이브별로 추적함), 드라이브만 입력하여 실제 드라이브를 별도로 전환해야 합니다.
C:\> e:
E:\> cd \fonts
E:\Fonts> _
매우 명확하지 않더라도 그 반대도 작동합니다.
C:\> cd e:\fonts
C:\> e:
E:\Fonts> _
cd e:
(그리고 예를 들어 스크린샷에서 를 사용할 때 이것은 그렇지 않습니다.변화뭐든지 오히려 그게쇼해당 드라이브 문자의 현재 디렉터리입니다.)
그러나 Cmd.exe에는 두 가지를 모두 변경할 수 있는 바로 가기가 있습니다 /d
.CD정신 차리고 일해:
cd /d e:\fonts
그만큼푸시/팝명령은 MS-DOS에 없고 호환성에 대한 부담이 없기 때문에 추가 작업이 필요하지 않습니다. (제가 예전에 사용했던도스키별칭 등 [=pushd $*
이 ]=popd
많이 있습니다.)
pushd e:\fonts
...
popd
답변2
cd [drive]:\directory는 해당 드라이브의 현재 디렉터리 "컨텍스트"를 변경하지만 해당 드라이브 자체로는 변경되지 않습니다.
이후에 [drive]:만 입력하면 해당 드라이브로 변경되고 이전에 "cd"한 디렉터리를 기억합니다.
CMD는 항상 이렇게 행동했습니다.
PowerShell의 "cd"는 항상 현재 드라이브와 디렉터리를 변경하는 Set-Location의 별칭입니다.
답변3
드라이브 문자를 입력하면 됩니다
C:\Users>K: