`cd` не меняет каталог в Windows 7 [дубликат]

20

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

Я работаю с cmd.exe Windows 7 (в отличие от Powershell). У меня 2 раздела на диске, C содержит ОС и установленные программы, а D содержит мои данные. Я пытался cdиз C в D, но CMD не позволил мне:

C:\>cd D:\

C:\>

Тем не менее, когда я печатаю dir D:\ , он будет правильно перечислять содержимое D. Почему это происходит и как я могу это исправить? Powershell работает отлично, поэтому я могу это использовать, но я хотел бы знать, что делает cmdплохо.

astay13
источник
Может ли кто-нибудь сделать тэг msdos? Я думаю, что этот вопрос действителен для всех версий DOS от 1.0 и выше. Если я правильно помню, у CP / M не было этой концепции, но вы могли бы адресовать отдельные диски, добавив букву диска: к имени файла. Я думаю, что это важно, так как это правильный вопрос для тех, кто не пережил эпоху DOS, а не вопрос Windows 7 как таковой.
Стюарт Вудворд
@StuartWoodward на самом деле DOS 1.0 не имел подкаталогов - они были введены в 2.0.
Джесси Слайсер

Ответы:

33

Вы должны использовать только d: , а неcd d:\

РЕДАКТИРОВАТЬ: также можно использовать cd /d d:для изменения дисков с помощью компакт-диска

soandos
источник
Я не совсем уверен, почему принял это дизайнерское решение, и я его ищу, но так было всегда.
Soandos
@ astay13 см. редактировать.
Soandos
1
@soandos cdозначает «изменить каталог» и D:является диском, а не каталогом. См. Ответ Дэвида для более подробной информации
Izkata
@Izkata, почему вы не можете перейти в каталог на другом диске, используя тот же синтаксис, который используется для перехода в другую папку? это то, что я говорил.
Soandos
Он действительно меняет каталог: например: C: \> cd D: \ test, меняет текущий каталог на диске D: для тестирования, но приглашение все еще находится на C:
Себастьян Годеле
28

Windows отслеживает отдельный рабочий каталог для каждого диска. В данный момент вы находитесь на диске 'C' в рабочем каталоге '\'. Когда вы печатаете, cd d:\он меняет ваш рабочий каталог для диска «D» на «\» и не влияет на рабочий каталог вашего диска C. Чтобы сменить диск, просто введите D:. Вы можете изменить оба /dпараметра одновременно cd.

Дэвид Шварц
источник
3
На самом деле, Windows, в которой спрашивающий говорит, что xe работает - Windows NT 6.1 - никогда - не с 1993 года - не имела отдельного рабочего каталога для каждого диска. Для каждого процесса существует один рабочий каталог. Появление нескольких рабочих каталогов на нескольких дисках фикция поддерживается командным интерпретатором Microsoft, и во время выполнения библиотек своих языков, используя скрытые переменные среды.
JdeBP
@JdeBP Скрытые переменные среды, которые отслеживают отдельный рабочий каталог для каждого диска? И является ли интерпретатор команд Microsoft и библиотеки времени выполнения ее языков частью Windows?
Дэвид Шварц
1

Следует отметить, что pushd(например pushd D:\) всегда будет менять диски.

bobbymcr
источник
Это было бы замечательно в качестве комментария к вопросу, но не отвечает на вопрос.
Стюарт Вудворд