通过命令行将符号链接/联结复制/移动到UNC文件夹

时间:2014-11-18 22:54:21

标签: windows cmd symlink junction

我需要找到一种方法将符号链接/联结从我的C:复制/移动到网络驱动器。

我可以使用MKLINK命令创建符号链接,但我无法将其移动到我需要它的UNC文件夹中。

如果我尝试在UNC文件夹中创建它,MKLINK将失败,如果我尝试XCOPY / b / i我收到错误消息并且文件未被复制。

当然我总是可以使用Windows资源管理器并拖放或复制/粘贴或剪切/粘贴,但这是我需要在批处理脚本中自动执行的。

3 个答案:

答案 0 :(得分:0)

符号链接取决于磁盘。

硬链接是文件的文件系统表示,多个路径引用相同卷中的单个文件。

联结(也称为软链接)与硬链接的不同之处在于,它引用的存储对象是单独的目录,联结可以链接位于同一台计算机上不同本地卷上的目录 。否则,交叉点的运行方式与硬链路相同。软链接通过重新分析点实现。

来自Windows Vista SDK。如果你已经安装了Hardlinks和Junctions ms-help://MS.MSSDK.1033/MS.WinSDK.1033/fileio/fs/hard_links_and_junctions.htm

这是我的另一篇文章解释了system32中的所有文件如何有两个硬链接的东西(因为explorer / cmd显示的窗口比实际使用的更多)。

  

文件的当前版本已硬链接到文件系统其余部分中的适当位置。硬链接是文件名。所有文件至少有一个硬链接。 Windows系统文件有两个硬链接,一个在WinSxS中,另一个在(通常)c:\ windows \ system32中。两个名称都指向磁盘上的相同字节。

     

由于文件有两个名称,它们被资源管理器统计两次,一次在System32中,一次在WinSxS中。

     

它也有其他用途。它允许多个程序使用不同版本的dll。

关键是它存储在文件夹文件中。它不能在另一个磁盘上。重新分析点在访问时运行代码。出于某种原因,代码允许其他驱动器但不允许远程驱动。

看看这是否有帮助

subst /?

subst k: \\127.0.0.1\C$

或使用快捷方式。

答案 1 :(得分:0)

我最终使用了我在其他地方找到的VB脚本来创建快捷方式。如果您将结果链接保存在本地或UNC位置,它并不在乎。

file" createshortcut.vbs"

Set oWS = WScript.CreateObject("WScript.Shell")
sLinkFile = WScript.Arguments(0)
Set oLink = oWS.CreateShortcut(sLinkFile)
    oLink.TargetPath = WScript.Arguments(1)
 '  oLink.Arguments = ""
 '  oLink.Description = "MyProgram"   
 '  oLink.HotKey = "ALT+CTRL+F"
 '  oLink.IconLocation = "C:\Program Files\MyApp\MyProgram.EXE, 2"
 '  oLink.WindowStyle = "1"   
 '  oLink.WorkingDirectory = "C:\Program Files\MyApp"
oLink.Save

调用" cscript createshortcut.vbs link_filename target_location"

答案 2 :(得分:0)

不确定是否有帮助: 当使用RDC

时,我能够使用mklink到本地pc

在设置中的连接期间添加应该与RDC连接的分区,

然后,如果连接活动,您将能够使用mklink到该驱动器,如: \ tsclient \ I \ data .... 根据你的光盘,它可以是I:或C:D:etc