Usando mklink no Windows7

Usando mklink no Windows7

Eu tenho duas unidades flash USB D:\e H:\dentro delas há alguns arquivos bin

001.bin,002.binem D

003.bin 004.binem H

Quero criar um link simbólico de tal forma que, quando um programa acessar, C:\binsele encontre dentro de todos os arquivos 001.bin,002.bin,003.bin,004.bindos drives USB e os acesse a partir dos drives USB.

Como posso fazer isso?

Responder1

É impossível mesclar dois diretórios usando um único link simbólico, pois um link só pode ter um destino. Isto se aplica igualmente a junções e links simbólicos. (No Linux isso poderia ser conseguido na camada VFS, usando sistemas de arquivos virtuais comosobreposiçõesousindicato; alguns outros sistemas semelhantes ao Unix também possuem conceitos semelhantes de "montagens de união". Infelizmente, isso não acontece no Windows.)

Mas se os .binnomes dos arquivos permanecerem sempre os mesmos, você poderá criar links simbólicos diretamente para os arquivos:

mkdir c:\bins
mklink /f c:\bins\001.bin d:\001.bin
mklink /f c:\bins\002.bin d:\002.bin
mklink /f c:\bins\003.bin h:\003.bin
mklink /f c:\bins\004.bin h:\004.bin
...and so on

Isso poderia ser reescrito como:

for /f %f in (d:\*.bin) do mklink /f "c:\bins\%~nxf" "%~f"
for /f %f in (h:\*.bin) do mklink /f "c:\bins\%~nxf" "%~f"

Responder2

Eu não acho que você será capaz de obter os arquivos D:e H:aparecer como irmãos dentro do arquivo C:\bins. Você deve ser capaz de usar os seguintes comandos para construir duas junções de diretório abaixo C:\bins.

>mklink /D /J "C:\bins\d" "D:\"
>mklink /D /J "C:\bins\h" "H:\"

Isso lhe dará c:\bins\de c:\bins\honde você encontrará 001.bin, 002.binin c:\bins\de 003.bin, 004.binin c:\bins\h.

informação relacionada