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


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

cd D:\

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

cd D:\<folder name>

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

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

chdir D: или cd d:

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

Я чувствую, что мне не хватает чего-то простого.


188
2018-04-27 15:35


Источник


Я использую pushd на месте cd почти везде, так как в таких ситуациях он намного лучше себя ведет. - Goyuix
См. Этот ответ "cd / d D:" superuser.com/a/135239/78897 - Pacerier
Попробуйте это: cd / d d: - DevWL


Ответы:


Возвращаясь ко временам 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>

271
2018-04-27 15:38



В ситуации «самого быстрого орудия на западе» победителем является тот, кто дает лучшее объяснение. +1, и я удаляю свой подобный ответ. - Gnoupi
Удаленный мой тоже. Нет необходимости в дополнительном беспорядке. - th3dude
-1 а) вы не указали, что cd e:\software линия ничего не сделала. Как будто вы застряли фантомную команду CD? Почему? Чтобы заставить его думать, что вы использовали CD, когда вы этого не сделали? и б) как можно не упоминать /dвключение CDing в конкретный каталог на другом диске. Он сказал с помощью команды cd поэтому, хотя хорошо, что вы указали, как это можно сделать без команды CD d:<ENTER>, вы должны были упомянуть и для команды CD cd /d d: или cd /d d:\blah - barlop
@barlop cd E:\software НЕ делает ничего. Он изменяет текущий каталог раздела E к software папка, что демонстрируется при окончательном переходе на раздел E с помощью E:, Хорошее предложение с CD / D, хотя. - miyalys
@miyalys интересный и замечательный момент - barlop


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

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

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

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

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

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

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

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

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

д:

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

  • JP Software (2011). CD / CHDIR Справка TCC On-line.
  • Корпорация Microsoft (2001). Чдир (CD), TechNet Windows XP Ссылка на командную строку A-Z.

73
2018-01-19 14:17



Похожие сообщения от Raymond Chen, - Daniel Beck♦
Не совсем правильно. Если вы это сделаете cd d:\  он меняет рабочий каталог на d:, Если вы это сделаете d:\  впоследствии он будет d:\ , Если вы это сделаете cd d:\something\something сначала ничего не произойдет. Но если вы это сделаете d:\  после этого ваш путь будет d:\something\something"! - sinni800
Ни одно из них не противоречит тому, что написано выше, sinni800 (кроме того, что вы получаете синтаксис для неправильного изменения текущего диска, то есть, но я упущу это). Я не включал обсуждение того, что происходит, когда вы указываете путь в аргументе, потому что (а) это не то, о чем идет речь, и (б) он находится в дальнейшем чтении. - JdeBP
Нет, мы не. Было бы неправильно говорить о перегородках вместо дисков здесь, user unknown, Во-первых, разделы не совпадают с томами, а буквы дисков отображаются на томах, а не на разделы. И когда речь идет об этом уровне абстракции, буква диска а также текущий привод являются общепринятыми терминами, которые используются здесь, в дальнейшем описании, и даже в cd /? текст справки. - JdeBP
Я использовал эту команду не менее 20 лет и никогда не знал этого. - Chris Ballance


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

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

windows command prompt cd


41
2018-04-27 16:28



+1, потому что я узнал что-то новое, но я не думаю, что все, что я написал, неверно. - coneslayer
Ваш ответ тоже верный, Multiverse IT, но coneslayer не был неправильным. Спасибо за ваши старания. Я изучил два больших трюка по этому вопросу. - nicorellius
С моей точки зрения «То, что вы хотите, просто ... D:» неверно. Да, это работает и является действенным методом достижения цели, но это не означает, строго говоря, что он должен хотеть. Кроме того, способ формулировки комментария подразумевает, что вы не можете использовать CD для этого - это подразумевается неверно. - Multiverse IT
его основная проблема заключается в том, «я не могу добраться до диска D». Таким образом, другой ответ правильный. Ваше решение занимает всего лишь один шаг меньше (что хорошо). Это не делает другого неправильным. - Gnoupi
Хм, «что ему нужно». Звучит довольно презумптивный ;-) - nicorellius


CD означает Свисящий D, а не Change Drive. Поэтому он не изменился бы до D: вот так. Для этого вам нужно просто ввести букву диска

например

д:


19
2018-01-19 07:58



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


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

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

В вашем случае рабочий каталог D: диск - это сам корень тома, D:\,

Чтобы изменить объемы из C: в D: просто введите букву диска:

C:\>D:
D:\>

9
2018-01-19 08:12



cd / D D: изменяет диски и каталоги ... - Michael S.
Перегородки отображаются на букву диска и практически совпадают с дисками. Вы также можете сопоставить каталог или поделиться им с диском, и они ведут себя одинаково. - Marty Fried


использование cd / D D: сделать это. Вы также можете указать пути.


8
2018-01-19 13:33





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

[Drive Letter]:

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

D:

5
2018-01-19 15:52



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


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

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

pushd D:\Tests\Logs

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

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

2
2017-07-27 21:59





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


0
2018-06-23 22:24