2

У меня Surface Pro 3 с SD-карты 32 ГБ. Я установил местоположение OneDrive для этой SD-карты (так как они удалили функцию заполнителя, и поэтому я вынужден загрузить все). Буква диска, назначенная SD-карте, - D:\ , подтвержденная утилитой disk management .

Проблема в том, что я не могу получить доступ к этому диску / карте с помощью командной строки - как обычный, так и с повышенными правами администратора. команда cd D:\ просто ничего не возвращает и остается в текущей папке.

Это приводит к тому, что на моем компьютере ломается довольно много инструментов командной строки, поскольку они не возвращают ошибку (но, похоже, ничего не работает).

Ответ, отмеченный ниже, является правильным. Тем не менее, для получения дополнительной информации попробуйте CMD CD на другие диски, кроме C:\ не работает

2 ответа2

5

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

Поэтому переключение дисков производится так:

C:\> D:

D:\>

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

D:\> cd relative_folder

D:\relative_folder> cd D:\absolute_folder

D:\absolute_folder>

Можно изменить каталог на другом диске, не переключаясь на этот диск, и это то, что вы случайно сделали:

D:\absolute_folder> cd C:\test

D:\absolute_folder> C:

C:\test> D:

D:\absolute_folder>

Также можно сослаться на текущий путь другого диска, просто указав букву диска без обратной косой черты:

D:\absolute_folder> dir C:
Directory listing of C:\test
...

D:\absolute_folder> dir C:hello
Directory listing of C:\test\hello
...

D:\absolute_folder> dir C:\
Directory listing of C:\
...

D:\absolute_folder>

И решение вашей проблемы: в современной Windows команда cd имеет ключ /d для неявного переключения дисков:

D:\absolute_folder> cd /d C:\something

C:\something>

Примечание: текущие пути для отдельного диска (для текущего процесса - текущие пути для процесса!) хранятся как магические скрытые переменные окружения, называемые =C: =D: и т. д.

Вы не можете назначить их обычно из-за знака равенства, но вы можете просмотреть их, используя echo %=C:% и т.д. Или перечислив все переменные окружения, включая скрытые, с помощью хака (обратите внимание на двойную кавычку):

C:\something> set "
=C:=C:\something
=D:=D:\absolute_folder
...

Вы также можете увидеть текущий путь другого диска, используя cd с буквой диска без какого-либо пути:

C:\something> cd D:
D:\absolute_folder

C:\something>

Для получения дополнительной информации, проверьте это: https://blogs.msdn.microsoft.com/oldnewthing/20100506-00/?p=14133

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

3

Unlink Linux, Windows странно.


Просто введите эту команду

D:

или же

D:\

Это переключится на диск


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