Usando mklink en Windows7

Usando mklink en Windows7

Tengo dos unidades flash USB D:\y H:\dentro tienen algunos archivos bin

001.bin,002.binen D

003.bin 004.binen H

Quiero crear un enlace simbólico de tal manera que cuando un programa acceda C:\binsencuentre dentro de todos los archivos 001.bin,002.bin,003.bin,004.binde las unidades USB y acceda a ellos desde las unidades USB.

¿Cómo puedo hacer esto?

Respuesta1

Es imposible fusionar dos directorios utilizando un único enlace simbólico, ya que un enlace sólo puede tener un destino. Esto se aplica igualmente a los cruces y a los enlaces simbólicos. (En Linux esto podría lograrse en la capa VFS, mediante el uso de sistemas de archivos virtuales comosuperposicionesosindicatos; Algunos otros sistemas similares a Unix también tienen conceptos similares de "montajes de unión". Desafortunadamente, no existe tal cosa en Windows).

Pero si los .binnombres de los archivos siempre son los mismos, puede crear enlaces simbólicos a los archivos directamente:

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

Esto podría reescribirse 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"

Respuesta2

No creo que puedan obtener los archivos D:y H:aparecer como hermanos dentro de C:\bins. Debería poder utilizar los siguientes comandos para crear dos uniones de directorios a continuación C:\bins.

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

Esto le dará c:\bins\dy c:\bins\hdónde encontrará 001.bin, 002.binen c:\bins\dy 003.bin, 004.binen c:\bins\h.

información relacionada