Posso criar um atalho que aponte para uma unidade específica, independentemente de sua letra de unidade?

2

Percebi que não posso usar \?\Volume{f993747a-5d7a-4de1-a97a-c20c1af1ba02}\path\to\target ou \Device\HarddiskVolume5\path\to\target como destinos de atalho - não funcionará. Só funciona quando eu uso letras de unidade em caminhos absolutos. Não quero usar letras de unidade ou caminhos relativos.

Posso especificar um alvo para um atalho que não será quebrado quando as letras de unidade mudarem? Como alternativa, posso criar um ponto de nova análise de NTFS (como um ponto de junção) para fazer isso?

    
por Wes 28.03.2015 / 23:08

2 respostas

2

Posso criar um atalho que aponte para uma unidade específica, independentemente de sua letra de unidade?

I don't want to use drive letters or relative paths

O tipo de segmentações que você deseja usar ( \?\Volume{f993747a-5d7a-4de1-a97a-c20c1af1ba02}\path\to\target ou \Device\HarddiskVolume5\path\to\target ) não são destinos válidos para um atalho.

Todos os alvos válidos para atalhos devem usar um dos tipos especificados abaixo.

Shortcut preference items allow you to configure a shortcut to a file system object (such as a file, folder, drive, share, or computer), a shell object (such as a printer, desktop item, or control panel item), or a URL (such as a Web page or an FTP site).

Fonte Configurar um item de atalho

Como alternativa, posso criar um ponto de nova análise de NTFS (como um ponto de junção) para fazer isso?

Você pode usar o mklink para criar um link simbólico do formulário \?\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

Agora, o teste de diretório contém um link simbólico (que, no meu caso, aponta para um arquivo f:\test\test.txt em uma unidade externa).

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>

Nota

  • Isso só funciona se você tentar desreferenciar o link no prompt de comando, mas não se tentar acessá-lo pela interface do explorador.

Leitura Adicional

por 28.03.2015 / 23:47
0

É um pouco invasivo e possivelmente inseguro, mas você deve ser capaz de configurar o compartilhamento na pasta raiz da unidade de interesse (nome de compartilhamento floatdrive , digamos) com permissões de compartilhamento apropriadas e, em seguida, construir todos os atalhos / links usando a sintaxe de URL de rede em localhost :

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

Contanto que o Windows monte a unidade corretamente, talvez o nome do compartilhamento acompanhe a unidade independentemente da letra da unidade atribuída. Eu infelizmente não tenho um sistema disponível no momento adequado para testar isso.

    
por 29.03.2015 / 23:51