16

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

Каждый раз, когда я хочу изменить контекст каталога на другой диск (D, E, F или любой другой ..) в командной строке Windows, я должен использовать "Drive letter":\ command, чтобы фактически изменить его. Если я попытаюсь с помощью "cd command" на cd H:\ он просто выдаст мне H:\ и ничего не сделает:

Введите описание изображения здесь

Есть ли какая-то причина для такого поведения? Я имею в виду, не команда cd command работает, чтобы сделать это? Почему не так?

3 ответа3

23

Пытаться:

cd /d d:

/d также переключает буквы дисков и каталоги, для получения дополнительной информации см. cd /?

11

Причина, по которой Windows ведет себя так, заключается в том, что DOS ведет себя так.

В DOS каждый диск имеет свой текущий каталог, а команда cd изменяет текущий каталог на диске. Если это также оказывается текущий диск, то ваш рабочий каталог меняется вместе с ним. Если вы хотите изменить текущий диск, вы просто указываете букву диска как команду.

Заметим, что Windows на самом деле больше не работает таким образом - у вас есть только один текущий каталог в любое время - но командная оболочка делает все возможное, чтобы притвориться, что для каждого диска есть текущие каталоги. Предположительно это делается для сохранения совместимости с существующими пакетными файлами DOS.

Причина, по которой DOS работает таким образом, восходит к самым ранним версиям DOS и CP/M до него. Подробности можно найти в блоге Раймонда Чена.

5

Прямой ответ таков:"потому что это не написано так". Просто введите D: будет делать то, что вы хотите.

Любопытно, что ввод cd D:\somedir изменит текущий каталог на D: на \data, но не изменит текущую командную строку на D:.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .