在Windows中,我如何使用批处理脚本创建符号链接?

9

我目前正在使用以下脚本将所有带有特定前缀的文件复制到目标目录:

for /f "delims==" %%k in ('dir "d:\Search Path\File Prefix*.*" /s /b') do copy "%%k" "d:\Target Directory\"

这个实现方法是可行的,但是我更希望创建一个文件符号链接(symlink)来代替这些文件,以便在文件更改时会更加方便。请问有没有人能够指导我如何执行这个操作?
非常感谢。

这里提供最简单而强大的.bat文件:https://puvox.software/blog/easiest-method-create-symlink-symbolic/ - T.Todua
1个回答

9
您可以使用mklink命令:
for /f "delims==" %%k in ('dir "d:\Search Path\File Prefix*.*" /s /b') do (
mklink "d:\Target Directory\" "%%~k"
)

那应该解决了你的问题。mklink /?获取更多信息。

Mona。


嗨Mona,谢谢你,我已经尝试过了,似乎应该可以工作,但是我得到了“拒绝访问”的错误(以域管理员身份运行)。有什么想法吗? - user3405604
1
好的。 我解决了,上面的脚本几乎正确,但返回“访问被拒绝”,因为链接目标未引用文件名和扩展名。如果将代码更改为:for /f "delims==" %%k in ('dir "d:\Search Path\File Prefix*.*" /s /b') do (mklink "d:\Target Directory\%%~nxk" "%%~k"),则可以工作。 - user3405604
1
如果您不再需要该链接,请使用“rmdir”将其删除。请勿使用“del”,因为它会从目标目录中删除所有文件。 - Marcell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接