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

705242
nicorellius

Это может быть глупый вопрос, и я думаю, что я искал ответ в другом месте ... Может быть, проблема с путями, но когда я открываю командную строку и набираю из C:\>:

cd D:\ 

Я не могу добраться до D диск. Даже если я наберу:

cd D:\<folder name> 

Он command.exeавтоматически завершит строку клавишей табуляции, чтобы он знал, где я нахожусь. Это просто не печатает, чтобы показать результат или фактически получить меня там. Эта проблема существует и для сетевых дисков.

Теперь, если я использую команду chdir( cd), как это:

chdir D: или же cd d:

Я получаю распечатку из приведенной D:\ниже команды, но она все еще говорит, что я в C:\.

Я чувствую, что упускаю что-то простое.

196
Я использовал `pushd` вместо` cd` практически везде, так как он ведет себя намного лучше в подобных ситуациях. Goyuix 12 лет назад 0
Смотрите этот ответ "** CD / D D: **" http://superuser.com/a/135239/78897 Pacerier 9 лет назад 4
Попробуйте это: cd / dd: DevWL 6 лет назад 1

9 ответов на вопрос

285
coneslayer

Возвращаясь ко временам DOS, для каждого диска есть отдельный «текущий каталог». cd D:\foldernameизменяет текущий каталог D: на указанное имя папки, но не меняет того факта, что вы все еще работаете на C:диске.

То, что вы хотите, это просто:

D: 

Здесь вы можете увидеть, как работает «отдельный текущий каталог для каждого диска»:

C:\Users\coneslayer>e:  E:\>c:  C:\Users\coneslayer>cd e:\software  C:\Users\coneslayer>e:  e:\Software> 
В ситуации «самого быстрого оружия на западе» победителем является тот, кто дает лучшее объяснение. +1, и я удаляю свой аналогичный ответ. Gnoupi 14 лет назад 15
Удалил мой тоже. Нет необходимости в дополнительном беспорядке. th3dude 14 лет назад 2
-1 а) вы не указали, что строка `cd e: \ software` ничего не сделала. Как будто вы вставили туда фантомную CD-команду. Почему? Чтобы заставить его думать, что вы использовали компакт-диск, когда вы не были? и б) как вы можете не упомянуть `/ d`, разрешающий CDing для определенного каталога на другом диске? Он сказал **, используя команду cd **, так что, хотя хорошо, что вы указали, как это можно сделать без CD команда `d:`, вы должны были также упомянуть для команды CD` cd / dd: `или` cd / dd: \ blah` barlop 7 лет назад 1
@barlop `cd E: \ software` ничего не делает. Он изменяет текущий каталог ** раздела E ** на папку `software`, что демонстрируется при окончательном переключении на раздел E с помощью` E: `. Хорошее предложение с CD / D, хотя. miyalys 7 лет назад 2
@miyalys интересный и замечательный момент barlop 7 лет назад 0
74
JdeBP

Он сделал работу, так как команда предназначена для работы.

Вы просто не знаете, как это на самом деле должно работать.

Вы не используете оболочку Unix или Linux. Команда cdв интерпретаторе команд Microsoft не ведет себя так, как cdкоманды в таких оболочках. Это ведет себя несколько иначе. В частности, он не всегда меняет каталог . В оболочках Unix и Linux cdтолько когда-либо устанавливает рабочий каталог. В интерпретаторе команд Microsoft cdиногда запрашивает его. Там нет отдельной pwdкоманды, так cdи две работы.

Если вы не укажете ему аргументы или аргумент, представляющий собой просто букву диска и двоеточие без пути, то он сообщит о текущем каталоге вместо его изменения . Если вы не укажете аргументы, он сообщит о текущем каталоге текущего диска процесса интерпретатора команд. Если в качестве аргумента вы указываете только букву диска и двоеточие, он сообщает текущий каталог процесса интерпретатора команд этого диска. Каждый диск имеет свой текущий каталог в интерпретаторе команд. (Это вымысел, поддерживаемый библиотеками времени выполнения для реализаций различных языков программирования Microsoft и нескольких других поставщиков. Сам Win32 так не работает.)

Поэтому, когда вы d:указали его в качестве аргумента, он сообщил вам текущий каталог процесса интерпретатора команд на диске D, который оказался D:\. Если бы вы не дали ему никаких аргументов, он бы вам об этом сообщил C:\.

Если вы хотите, чтобы cdкоманда всегда находилась в режиме установки и никогда не находилась в режиме запроса, вам нужно добавить эту /Dопцию. Это вынуждает команду всегда находиться в режиме установки, а также расширяет ее, чтобы она изменяла текущий диск, а также изменяла текущий каталог диска. (Другими словами, он работает больше, чем базовый Win32 API.)

Так, например, командная строка

кд / дд:
изменит каталог на любой текущий каталог на диске D, а также заменит текущий диск на диск D.

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

д:

дальнейшее чтение

  • JP Software (2011). CD / CHDIR TCC Онлайн-справка.
  • Корпорация Microsoft (2001). Чдир (CD) . TechNet Windows XP Справочник по командной строке A – Z.
[Связанный пост Раймонда Чена] (http://blogs.msdn.com/b/oldnewthing/archive/2010/10/11/10073890.aspx). Daniel Beck 12 лет назад 4
Не совсем верно. Если вы выполните `cd d: \`, это изменит рабочий каталог на `d:`. Если после этого вы сделаете `d: \`, оно будет в `d: \`. Если вы выполните `cd d: \ что-то \ что-то`, сначала ничего не произойдет. Но если вы потом снова выполните `d: \`, ваш путь будет `d: \ что-то \ что-то" `! sinni800 12 лет назад 3
Ничто из этого не противоречит тому, что написано выше, `sinni800` (за исключением того, что вы неправильно используете синтаксис для изменения текущего диска, но я это пропущу). Я не включал обсуждение того, что происходит, когда в аргументе указывается имя пути, потому что (а) это не тот вопрос, о котором идет речь, и (б) он находится в дальнейшем прочтении. JdeBP 12 лет назад 4
Нет, мы не. Было бы неправильно говорить здесь о разделах, а не о дисках, «пользователь неизвестен». Начнем с того, что разделы не совпадают с томами, а буквы дисков отображаются на тома, а не на разделы. И когда кто-то говорит на этом уровне абстракции, _drive letter_ и _current drive_ являются общепринятыми терминами, используемыми здесь, в указанном дальнейшем чтении и даже в тексте справки `cd /? '. JdeBP 12 лет назад 6
Я использовал эту команду по крайней мере 20 лет и никогда не знал этого. Chris Ballance 11 лет назад 2
Поскольку вы предоставляете гиперссылку на интерактивную справку JP Software, вы также можете обратиться к [интерактивной справке JP Software по их команде «CDD»] (http://jpsoft.com./help/cdd.htm), так как это весьма актуально для этого разговора. TOOGAM 7 лет назад 0
45
Multiverse IT

Боюсь, это неправильно. Это правда со времен DOS, но командная строка в Windows NT и более поздних версиях не DOS. В командной строке, которую все используют сегодня, у вас есть ключ / D. Ключ / d изменит текущий каталог указанного диска и перейдет в этот каталог. Ключ / d должен быть указан до пути. Например:

C:\> cd /d D:\foo\bar\ D:\foo\bar\> 

командная строка windows cd

+1, потому что я узнал что-то новое, но я не думаю, что все, что я написал, неверно. coneslayer 14 лет назад 3
Your answer is correct too, Multiverse IT, but coneslayer wasn't incorrect. Thanks for your efforts. I learned two great tricks on this question. nicorellius 14 лет назад 3
From my perspective "What you want is simple ... D:" is incorrect. Yes it works and is a valid method of achieving the goal, but it is not, strictly speaking what he should want. Additionally, the way the comment is worded implies that you cannot use CD to do this - that implication is incorrect. Multiverse IT 14 лет назад 2
его главная проблема заключается в том, что «я не могу добраться до диска D». Таким образом, другой ответ правильный. Ваше решение занимает всего один шаг меньше (что хорошо). Это не делает другого неправильным. Gnoupi 14 лет назад 0
Хм, "что он должен хотеть". Звучит довольно предположительно ;-) nicorellius 11 лет назад 0
набрав просто C: чтобы перейти на диск C: в Windows 10 работал Yvonne Aburrow 7 лет назад 0
19
IUnknown

CD означает C висящий D irectory, а не изменить диск. Так что это не изменится на D: вот так. Для этого вам нужно просто ввести букву диска

например

д:

CD / DD: изменяет диски и каталоги ... Michael S. 12 лет назад 16
Но d: это раздел, а не диск. user unknown 12 лет назад 0
@userunknown В эпоху Dos 1.0, когда была разработана оболочка, были только дискеты, которые AFAIK не может быть разбит на разделы. Первоначальная поддержка жесткого диска была только для основного (первого) раздела на диске. Расширенная поддержка разделов не была добавлена ​​до позже. Dan Neely 12 лет назад 1
Я не вижу ни MS-DOS 1.0, ни 1.0. Возможно, вы не можете разбить диск с помощью программ MS-DOS, но вы можете установить MS-DOS на многораздельный диск. Я полагаю, что MS-DOS не поддерживается, и тег есть, потому что многие пользователи считают, что cmd.exe и MS-DOS означают одно и то же, что является еще одной ошибкой, которую необходимо устранить. Кстати: MS-DOS 1.0 никогда не был опубликован. user unknown 12 лет назад 0
@userunknown Проектные решения относятся к начальным версиям DOS. Изменение поведения повредило бы старые программы (см. Комментарий Дэниэла Бека ниже). PS; согласно Википедии MS DOS 1.x был опубликован. Dan Neely 12 лет назад 1
9
Andrew Lambert

Рабочий каталог в cmd.exe поддерживается на volume-by-volumeоснове; Рабочий каталог для C:диска отличается от рабочего каталога для D:диска.

Когда вы передаете только букву диска cd, он напечатает рабочий каталог для указанного диска.

В вашем случае рабочим каталогом D:диска является сам корень тома D:\.

Для того, чтобы изменить объемы от C:до D:просто ввести букву диска:

C:\>D: D:\> 
CD / DD: изменяет диски и каталоги ... Michael S. 12 лет назад 2
Разделы отображаются на букву диска и практически совпадают с буквой диска. Вы также можете сопоставить каталог или общий ресурс с диском, и они ведут себя одинаково. Marty Fried 12 лет назад 1
8
Michael S.

Используйте cd / DD: для этого. Вы также можете указать пути.

5
Darsak

Если вы хотите изменить диск в командной строке DOS, вам просто нужно написать:

[Drive Letter]: 

Например, если вы хотите перейти на диск D: \, вам просто нужно ввести в командной строке следующее:

D: 
Вы изменяете раздел с помощью `[Drive Letter]:`, поверьте мне или проверьте это! user unknown 12 лет назад 0
Ого, это делает все намного проще. Я всегда забываю `/ d`, поэтому переключение происходит намного быстрее. Mateen Ulhaq 7 лет назад 0
2
BladeMight

pushdработает, даже если вам нужно перейти к подкаталогу диска, например D:\Tests\Logs.

Просто используйте это так:

pushd D:\Tests\Logs 

Если вы хотите вернуться к предыдущему каталогу, используйте popd:

C:\Users>pushd D:\Tests\Logs D:\Tests\Logs>popd C:\Users> 
0
user609712

При переходе к параметру поиска на панели инструментов и поиску cmd или выбрав в Windows All приложение, выбрав командную строку, он перейдет в другую командную строку. Вместо этого попробуйте нажать кнопку Windows + R и найти cmd, который требуется для диска C:>. Оттуда вы можете перейти к D:> или где вам нужно