Почему «cd D:» не изменяет контекст команды на D:?

Почему «cd D:» не изменяет контекст команды на D:?

Возможный дубликат:
Используя команду cd в командной строке Windows, не удается перейти на D:\

Каждый раз, когда я хочу изменить контекст каталога на другой диск (D, E, F или что-то еще...) в командной строке Windows, я должен использовать "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:.

Связанный контент