Eu tenho duas unidades flash USB D:\
e H:\
dentro delas há alguns arquivos bin
001.bin,002.bin
em D
003.bin 004.bin
em H
Quero criar um link simbólico de tal forma que, quando um programa acessar, C:\bins
ele encontre dentro de todos os arquivos 001.bin,002.bin,003.bin,004.bin
dos 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 .bin
nomes 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\d
e c:\bins\h
onde você encontrará 001.bin
, 002.bin
in c:\bins\d
e 003.bin
, 004.bin
in c:\bins\h
.