Могу ли я создать ярлык, который указывает на конкретный диск, независимо от его буквы диска?

Я заметил, что я не могу использовать \\?\Volume{f993747a-5d7a-4de1-a97a-c20c1af1ba02}\path\to\target или \Device\HarddiskVolume5\path\to\target качестве целей ярлыка – это не сработает. Он работает только при использовании букв дисков в абсолютных путях. Я не хочу использовать буквы дисков или относительные пути.

Могу ли я указать цель для ярлыка, который не сломается при изменении букв диска? В качестве альтернативы, могу ли я создать точку повторной обработки NTFS (например, точку соединения), чтобы сделать это?

2 Solutions collect form web for “Могу ли я создать ярлык, который указывает на конкретный диск, независимо от его буквы диска?”

Могу ли я создать ярлык, который указывает на конкретный диск, независимо от его буквы диска?

Я не хочу использовать буквы дисков или относительные пути

Тип целевых объектов, которые вы хотите использовать ( \?\Volume{f993747a-5d7a-4de1-a97a-c20c1af1ba02}\path\to\target или \Device\HarddiskVolume5\path\to\target ), не являются допустимыми целями для ярлыка.

Все допустимые цели для ярлыков должны использовать один из типов, указанных ниже.


Элементы настройки ярлыка позволяют настроить ярлык для объекта файловой системы (например, файл, папку, диск, общий доступ или компьютер), объект оболочки (например, принтер, элемент рабочего стола или элемент панели управления) или URL (например, веб-страница или FTP-сайт).

Источник Настройка ярлыка


В качестве альтернативы, могу ли я создать точку повторной обработки NTFS (например, точку соединения), чтобы сделать это?

Вы можете использовать mklink для создания символической ссылки формы \\?\Volume{f993747a-5d7a-4de1-a97a-c20c1af1ba02}\path\to\target.txt

 c: md \test cd \test mklink testlink \\?\Volume{d1a54614-9369-11e4-b7ab-ccaf78b24c0a}\test\test.txt 

Теперь тест каталога содержит символическую ссылку (которая в моем случае указывает на файл f:\test\test.txt на внешнем диске).

 C:\test>dir Volume in drive C has no label. Volume Serial Number is C8D0-DF1E Directory of C:\test 29/03/2015 23:24 <DIR> . 29/03/2015 23:24 <DIR> .. 29/03/2015 23:17 <SYMLINK> testlink [\\?\Volume{d1a54614-9369-11e4-b7ab-ccaf78b24c0a}\test\test.txt] 1 File(s) 0 bytes 2 Dir(s) 248,410,976,256 bytes free 

 C:\test>type testlink this file is test.txt C:\test> 

 C:\test>type f:\test\test.txt this file is test.txt C:\test> 

Заметка

  • Это работает, только если вы попытаетесь разыменовать ссылку из командной строки, но не пытаетесь получить к ней доступ из интерфейса проводника.

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

  • Индекс AZ для командной строки Windows CMD – отличная ссылка для всех связанных строк Windows.
  • Mklink – создать символическую ссылку на каталог или файл или создать жесткую ссылку на файл или соединение с каталогом.

Это немного взломать и, возможно, небезопасно, но вы должны иметь возможность настроить общий floatdrive к корневой папке интересующего диска ( floatdrive , скажем) с соответствующими разрешениями доступа, а затем построить все ярлыки / ссылки с помощью синтаксиса сетевых URL-адресов На localhost :

 \\localhost\floatdrive\folder\or\file\of\interest.txt 

Пока Windows монтирует диск правильно, возможно, имя общего ресурса будет следовать за диском независимо от того, какая буква диска была назначена. У меня, к сожалению, нет системы под рукой в ​​настоящий момент, подходящей для проверки этого.

Давайте будем гением компьютера.