Можно ли подключить том к пользовательскому префиксу диска, например, «myDrive: \»?

768
iglvzx

Я просто мечтатель или что-то подобное существует?

13
Монтирование в папку будет самой близкой вещью. surfasb 12 лет назад 3
Одна проблема заключается в том, что символ `:` также используется для разделения имени файла и имени [Альтернативный поток данных] (http://www.symantec.com/connect/articles/windows-ntfs-alternate-data-streams). MyDrive: Foo называет поток Foo в файле MyDrive, а не файл Foo в текущем рабочем каталоге диска MyDrive. Кроме того, почему вы хотите это сделать? MSalters 12 лет назад 0
Я подумал, что это может быть проще с помощью статических ярлыков и тому подобное. Например, если у меня есть ссылка на E: \ etc, это полезно, только если E: все тот же том. Я полагаю, что лучшим решением было бы подключить том к Z: или другим никогда не используемым буквам. iglvzx 12 лет назад 0

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

13
Dennis

Нет, ты не можешь. Это называется буквой диска по причине.

Команда myDrive:выдает ошибку

'myDrive:' is not recognized as an internal or external command, operable program or batch file.

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

DOS позволял вам использовать все символы ASCII между A и ` (оба включительно), давая вам в общей сложности 32 различных буквы диска. Я не уверен, как получить доступ к последним 6 на Windows, хотя.

Самое близкое к вашей «мечте» - это крепление. Например, вы можете смонтировать диск (на самом деле, раздел) в папке C:\myDrive.

Другое «решение», которое будет работать для проводника Windows, - добавление расширяемого строкового значения в раздел реестра.

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders,

Здесь хранятся фактические местоположения Desktop, My Music и т. Д.

Буква диска должна быть AZ, у вас не может быть не альфа-символа. Как вы сказали "Это называется буквой диска по причине" Dustin G. 12 лет назад 4
@DustinG .: Я не знаю о последних версиях Windows, но те, у которых еще был файл config.sys, могут иметь букву диска, а не буквы. Все, что вам нужно, это 2 оптических привода и указание Z в качестве первой буквы диска для них. Вот как я пару раз завелся с `[:` ... Dennis 12 лет назад 1
@DustinG: Технически, DefineDosDevice () в Windows NT принимает * все * в диапазоне 0x1..0xFF. На практике, однако, очень немногие программы принимают "` /: `" или "` [: `". (Вы даже можете определить `foo:` таким образом, но это не сработает.) grawity 12 лет назад 1
@Dennis, который кажется счастливым с 3.1 или 9x, я хотел бы проверить это, но нет возможности для прямого или косвенного (как вы предлагаете) дать диску не альфа-назначение в системах NT. Dustin G. 12 лет назад 0
@DustinG .: Я гуглил это, и 32 буквы диска кажутся частным случаем Windows 95, 98 и (возможно) Me. Тем не менее, есть еще метод, который будет работать в Windows 7: попробуйте `subst [: C: \`. Теперь у вас есть буква диска `[`. Dennis 12 лет назад 2
@Dennis, используя команду subst, вы просто создаете «букву» виртуального диска, поэтому теперь диск C принимает и C: и [: и помогает оператору с тем, что они хотят. Dustin G. 12 лет назад 0
@ Денис Я исправлюсь, используя не-буквенный символ для обозначения диска, но он ограничен и довольно бесполезен Dustin G. 12 лет назад 0
@DustinG .: Технически, у него есть применение, которое теперь является новым способом связываться с коллегами. , , surfasb 12 лет назад 0
@Dustin: Тем не менее, можно создать сопоставление, подобное субстату, непосредственно на имя тома (путь \\? \ Volume {...} `) без необходимости назначения буквенных букв диска, используя вышеупомянутый DefineDosDevice () (который, кстати, является тем, что использует сама подставка). grawity 12 лет назад 0
2
Anthony Mastrean

Вы можете создавать собственные именованные «диски» с помощью системы поставщика PowerShell . Вы бы сделали что-то вроде

PS> New-PSDrive -name myDrive -PSProvider FileSystem -Root "F:" 

Затем вы получите доступ к файлам / каталогам на том же диске, как

PS> dir myDrive:\whatever\foo 

Из вашего вопроса не было ясно, находились ли вы в скриптовой / консольной среде или хотели ли вы видеть это в проводнике Windows. Кроме того, я предполагаю, что вы говорили о файловой системе "том". Система поставщиков PowerShell также поддерживает другие типы поставщиков.