私はUSBフラッシュドライブを2つ持っていてD:\
、H:\
その中にはbinファイルがいくつか入っています
001.bin,002.bin
Dに
003.bin 004.bin
Hに
プログラムがアクセスしたときに、USB ドライブC:\bins
内のすべてのファイルを検索し、USB ドライブからそれらにアクセスするようなシンボリック リンクを作成したいと考えています。001.bin,002.bin,003.bin,004.bin
これどうやってするの?
答え1
1つのシンボリックリンクで2つのディレクトリを結合することは不可能です。リンクは1つのターゲットしか持てないからです。これはジャンクションやシンボリックリンクにも同様に当てはまります。(Linuxでは、これはVFS層で仮想ファイルシステムを使って実現できます。オーバーレイまたはユニオン; 他の Unix 系システムにも、同様の「ユニオン マウント」の概念があります。残念ながら、Windows にはそのようなものはありません。
ただし、.bin
ファイル名が常に同じである場合は、ファイルへのシンボリックリンクを直接作成できます。
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
これは次のように書き直すことができます。
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"
答え2
D:
およびのファイルをH:
内で兄弟として表示することはできないと思いますC:\bins
。 の下に 2 つのディレクトリ ジャンクションを構築するには、次のコマンドを使用できますC:\bins
。
>mklink /D /J "C:\bins\d" "D:\"
>mklink /D /J "C:\bins\h" "H:\"
これにより、 およびc:\bins\d
がのどこにあり、が のどこc:\bins\h
にあるのかがわかります。001.bin
002.bin
c:\bins\d
003.bin
004.bin
c:\bins\h