Tengo dos unidades flash USB D:\
y H:\
dentro tienen algunos archivos bin
001.bin,002.bin
en D
003.bin 004.bin
en H
Quiero crear un enlace simbólico de tal manera que cuando un programa acceda C:\bins
encuentre dentro de todos los archivos 001.bin,002.bin,003.bin,004.bin
de 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 .bin
nombres 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\d
y c:\bins\h
dónde encontrará 001.bin
, 002.bin
en c:\bins\d
y 003.bin
, 004.bin
en c:\bins\h
.