Usando o mklink no Windows7

2

Eu tenho dois flash drives usb D:\ e H:\ , dentro eles têm alguns arquivos bin

001.bin,002.bin em D

003.bin 004.bin em H

Eu quero criar um link simbólico de tal forma que quando um programa acessar C:\bins encontre dentro de todos os arquivos 001.bin,002.bin,003.bin,004.bin dos drives usb, e acesse-os a partir dos drives usb.

Como posso fazer isso?

    
por Panayiotis 28.05.2012 / 16:00

2 respostas

4

É impossível mesclar dois diretórios usando um único link simbólico, já que um link pode ter apenas um destino. Isso se aplica igualmente a junções e links simbólicos. (No Linux isso pode ser alcançado na camada VFS, usando sistemas de arquivos virtuais como overlayfs ou unionfs ; alguns outros sistemas semelhantes a Unix também possuem conceitos semelhantes de "montagens de união" Não existe tal coisa no Windows, infelizmente.)

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

mkdir c:\bins
mklink /f c:\bins
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"
1.bin d:
mkdir c:\bins
mklink /f c:\bins
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"
1.bin d:%pre%1.bin mklink /f c:\bins%pre%2.bin d:%pre%2.bin mklink /f c:\bins%pre%3.bin h:%pre%3.bin mklink /f c:\bins%pre%4.bin h:%pre%4.bin ...and so on
1.bin mklink /f c:\bins%pre%2.bin d:%pre%2.bin mklink /f c:\bins%pre%3.bin h:%pre%3.bin mklink /f c:\bins%pre%4.bin h:%pre%4.bin ...and so on

Isso pode ser reescrito como:

%pre%     
por 28.05.2012 / 16:16
1

Não acredito que você conseguirá que os arquivos de D: e H: apareçam como irmãos em C:\bins . Você deve ser capaz de usar os seguintes comandos para criar duas junções de diretório abaixo de 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 em c:\bins\d e 003.bin , 004.bin em c:\bins\h .

    
por 28.05.2012 / 16:13