mklink错误:该文件已存在时无法创建该文件


27

我试图在Win7 64位计算机上创建符号链接,以将iTunes备份数据重定向到另一个驱动器。我很确定语法是正确的,但无法理解如何清除此错误。我尝试了下面的两个命令,它们具有相同的错误。我正在管理员命令窗口中运行。可能有一些公司组策略阻止我运行此命令?

mklink /D "C:\Users\odellt1\AppData\Roaming\Apple Computer\MobileSync\Backup" "E:\Apple Computer\MobileSync\Backup" 

要么

mklink /J "C:\Users\odellt1\AppData\Roaming\Apple Computer\MobileSync\Backup" "E:\Apple Computer\MobileSync\Backup"

错误

该文件已存在时无法创建该文件。


原始目录是哪一个?
2013年

原始目录为C:\ Users \ odellt1 \ AppData \ Roaming \ Apple Computer \ MobileSync \ Backup
ChiliYago 2013年

您要链接到E盘上的文件夹是否存在?C驱动器上是否存在与链接同名的文件夹?E驱动器是否已在NTFS中格式化?
哈里·约翰斯顿

1
语法正确,在运行此命令之前,请执行以下步骤。将当前mobilesync备份文件夹的所有内容移动到E:\ Apple Computer \ MobileSync \ Backup。完成后,从“ C:\ Users \ odellt1 \ AppData \ Roaming \ Apple Computer \ MobileSync”中删除空的备份子文件夹。仅当该位置不存在具有相同名称的子文件夹时,才能创建交点。
Karanvir Kang

Answers:


29

语法不正确。mklink具有以下synatx:

mklink [options] <Link> <Target>

Target是存在的文件/文件夹,并且Link链接到目标的已创建文件/文件夹。

所以命令应该是:

mklink /D "E:\Apple Computer\MobileSync\Backup"  "C:\Users\odellt1\AppData\Roaming\Apple Computer\MobileSync\Backup"

请参阅此链接了解mklink的用法。


我浏览了文档,内容如此简短,以为运行起来没问题。但是,不走运,甚至像您建议的那样反转链接/目标也会导致相同的错误消息。
ChiliYago

1
那么您应该检查E:\ Apple Computer \ MobileSync \ Backup文件夹是否不存在
Akram Berkawy,

1
那行得通。我注意到删除完整路径会导致错误:“系统找不到指定的路径。” 因此,我还原了路径,仅删除了路径中的最后一个文件夹(“备份”),然后它起作用了。
ChiliYago13年

1
这不是正确的答案。这将创建一个simlink,它不会将iTunes重定向到另一个驱动器。它的操作正好相反-将另一个驱动器定向到iTunes备份文件夹。
Vaiden

8

简单的方法是在运行以下命令时删除原始Apple文件夹备份中的Backup文件夹(在C:\驱动程序中):

mklink /J "%APPDATA%\Apple Computer\MobileSync\Backup" "E:\iTune Backups"

Windows将在C:\驱动程序中创建链接快捷方式“备份”。


2
这是OP要做的正确答案
Vaiden

4

在使用“%AppData%”之前,我对“文件已存在错误”存在相同的问题:

mklink / J“%APPDATA%\ Apple Computer \ MobileSync \ Backup”“ E:\ iTune备份”

为C:\ Users \ Me \ AppData \ Roaming \ Apple Computer \ MobileSync \ Backup创建的连接<< === >> E:\ iTune备份

注意:确保使用直引号,否则会出现语法命令错误。


我喜欢这种简单的方法,可以在创建联结之前确保源文件夹和目标文件夹不存在。创建联结会创建源文件夹,但不会创建目标文件夹。因此,我必须手动创建目标文件夹,然后所有文件才能正常运行。
timoto '16

这为我修复了该问题,但是对%AppData%修复它的原因有一个很好的解释。
Aureis

2

我只是想补充一下,System cannot find the path specified当您在链接的原始来源不存在的文件夹子级别进行符号链接时,您在上面的注释中提到的错误似乎会发生。

表示您无法链接

"c:\program files (x86)\some folder1\some folder2\"

达到目标

"d:\programs\some folder1\some folder2\"

除非至少

"c:\program files (x86)\some folder1"

作为链接源的一部分存在。您将不得不链接

"c:\program files (x86)\some folder1"

"g:\programs\some folder1" 

否则您必须至少在以下位置创建一个空文件夹

"c:\program files (x86)\some folder1"

然后创建链接

"c:\program files (x86)\some folder1\some folder2" 

"g:\programs\some folder1\some folder2"

微软看来这似乎是一个错误,但是这个答案实际上是正确的。当您链接C:\fooE:` for instance, E:\ foo时,必须存在cd C:\foo;但是,当您执行 cd时,您将被放入E:` -- **not** E:\ foo`。感谢您指出这一点,我永远都不会想出来。
Qix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.