使用场景
有时候想要在多个Unity工程里共用同一个文件夹,就想用符号链接[1]去共享文件夹。这样就不用复制来复制去还可以即时同步。虽然在外部建立Bat文件甚至直接通过控制台命令就可以实现符号链接的功能,但是想要不离开Unity编辑器,通过编辑器的UI来实现该功能的话,就要能通过C#去执行bat文件(似乎C#有库能够实现C#代码创建符号链接,但很麻烦的样子,不如直接调用bat来得方便)。
建立一个bat文件
建立符号链接命令很简单,新建一个文本文档,在里面输入:
1 | mklink /J %1 %2 |
将后缀名改为bat后就完成了。
1 | mklink /J /H /D Link Target |
更详细地关于符号链接,硬链接和快捷方式的区别参看这个博文Windows下mklink使用, 硬链接, 软链接和快捷方式的区别。
注意:
1. 由于斜杠代表命令的参数,所以Link和Target的路径分割必须是反斜杠。
2. 新建立链接的路径所在的文件夹必须存在才能创建成功。
通过%1~%9来传递参数:
%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。
变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用 %1 到 %9 顺序表示。
例如:
1 | call test2.bat "hello" "haha" |
通过C#调外部程序
就是是通过Process类调用外部程序以及执行dos命令。
1 | Process pro = new Process(); //实例化一个进程实例。 |
写在后面
我在UnityToolchainsTrick 实现了在文件夹上右键在创立符号链接的功能。在Example_03_Mklink文件夹里。
[1]: 又称软链接