【前言】
Windows的批处理的软链接API大致如下,我们想要实现文件夹的软链接需要用到/J创建目录联接,然后就做了一个bat脚本。
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件
符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径
(相对或绝对)。
【放出代码】
大致思路:第一步拖入Link的路径,这个目录是我们软链接的父目录,第二步拖入Target的路径,作为源文件夹,然后下一步我们需要拿到Target路径的最后一个文件夹,将这个文件夹加到Link路径后的目录,使软链接和源文件的文件夹相同,方便知道。最后就使用mklink /j来实现文件夹之间链接共享。
echo off
rem MKLINK [[/D] | [/H] | [/J]] Link Target
rem
rem /D 创建目录符号链接。默认为文件
rem 符号链接。
rem /H 创建硬链接而非符号链接。
rem /J 创建目录联接。
rem Link 指定新的符号链接名称。
rem Target 指定新链接引用的路径
rem (相对或绝对)。
rem 拖进一个目录作为 Target,然后拖入新目录作为Link,加个Target末尾目录文件夹作为Target,然后回车实现动态软链接
echo "================================"
echo 动态软链接工具,Link目录(生成的软链接路径),需要拖入Target目录(软链接的源文件夹路径),然后回车关联目录(/J,实现目录链接共享)
echo "================================"
:RestStart
set /p Link=请拖入Link执行:
set /p Target=请拖入Target执行:
rem 取最后一个文件夹名
for /f "delims=" %%a in ("%Target%") do (
for %%I in (%Target%) do (
echo %%~na%%~xI
set Link=%Link%\%%~na%%~xI
)
)
mklink /j %Link% %Target%
echo "================================"
goto RestStart
rem pause