有人知道可以生成符号链接而不是复制文件的同步应用程序吗?或者执行此操作的 (Windows) 批处理脚本是什么样子的?
如果脚本是解决方案,我想递归地在文件夹树中搜索具有特定名称的文件夹,例如“我的文件夹”,并且仅“同步”(创建指向)这些文件夹的链接。
答案1
因此我学习了一些 cmd 脚本,下面就是我想到的内容:
SET target="M:\TEST"
SET filter="Personal"
forfiles /s /m %filter% /c "cmd /c IF @isdir==TRUE mkdir %target%\@relpath"
forfiles /s /m %filter% /c "cmd /c IF @isdir==TRUE rmdir %target%\@relpath"
forfiles /s /m %filter% /c "cmd /c IF @isdir==TRUE mklink /D %target%\@relpath %cd%\@relpath"
这将在当前目录中查找所有名为“Personal”的文件夹,并在目标目录中创建符号链接。我不得不做一些小技巧来保留文件夹结构。(它不想在尚不存在的位置创建符号链接。)
它可能很复杂,但我试图管理的程序也是如此(在本例中是 FL Studio)。
更新
当路径中有空格时,该代码就会出现问题。经过几个小时的疯狂尝试,以下代码似乎可以正常工作。是的,有很多引号。
SET target=C:\Program Files\Path With Spaces
SET filter=Personal
forfiles /s /m %filter% /c "cmd /c IF @isdir==TRUE mkdir """%target%"""\@relpath"
forfiles /s /m %filter% /c "cmd /c IF @isdir==TRUE rmdir """%target%"""\@relpath"
forfiles /s /m %filter% /c "cmd /c IF @isdir==TRUE mklink /D """%target%"""\@relpath """%cd%"""\@relpath"