mklink error: Kann keine Datei erstellen, wenn diese Datei bereits existiert


27

Ich versuche, auf meinem win7 64-Bit-Computer einen symbolischen Link zu erstellen, um die iTunes-Sicherungsdaten auf ein anderes Laufwerk umzuleiten. Ich bin mir ziemlich sicher, dass die Syntax korrekt ist, kann aber nicht verstehen, wie dieser Fehler behoben werden kann. Ich habe beide Befehle unten versucht, die den gleichen Fehler haben. Ich arbeite im Administrator-Befehlsfenster. Konnte es eine Unternehmensgruppenrichtlinie geben, die mich daran hinderte, diesen Befehl auszuführen?

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

oder

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

Error

Es kann keine Datei erstellt werden, wenn diese Datei bereits vorhanden ist.


Welches ist das ursprüngliche Verzeichnis?
Akram Berkawy

Das ursprüngliche Verzeichnis ist C: \ Users \ odellt1 \ AppData \ Roaming \ Apple Computer \ MobileSync \ Backup
ChiliYago

Ist der Ordner, mit dem Sie auf dem E-Laufwerk verknüpfen, vorhanden? Befindet sich auf dem Laufwerk C ein Ordner mit demselben Namen wie der Link? Ist das E-Laufwerk in NTFS formatiert?
Harry Johnston

1
Die Syntax ist korrekt. Führen Sie die folgenden Schritte aus, bevor Sie diesen Befehl ausführen. Verschieben Sie den gesamten Inhalt des aktuellen mobilesync-Sicherungsordners nach E: \ Apple Computer \ MobileSync \ Backup. Löschen Sie anschließend den leeren Sicherungsunterordner unter "C: \ Users \ odellt1 \ AppData \ Roaming \ Apple Computer \ MobileSync". Eine Junction kann nur erstellt werden, wenn am Speicherort kein Unterordner mit demselben Namen vorhanden ist.
Karanvir Kang

Antworten:


29

Die Syntax ist falsch. mklinkhat folgende synatx:

mklink [options] <Link> <Target>

Targetist die Datei / der Ordner, die / der vorhanden ist, und Linkist die erstellte Datei , die mit dem Ziel verknüpft ist .

Der Befehl sollte also lauten:

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

Siehe diesen Link für die Verwendung von mklink.


Ich habe die Dokumente durchgesehen und bin so kurz, dass Sie denken, es wäre kein Problem, sie auszuführen. Jedoch kein Glück, sogar das Umkehren des Links / Ziels, wie Sie es vorschlagen, führt zur gleichen Fehlermeldung.
ChiliYago

1
Dann sollten Sie überprüfen, ob der Ordner "E: \ Apple Computer \ MobileSync \ Backup" nicht vorhanden ist
Akram Berkawy,

1
Das hat funktioniert. Ich habe festgestellt, dass das Löschen des vollständigen Pfads zu einem Fehler führte: "Das System kann den angegebenen Pfad nicht finden." Also habe ich den Pfad wiederhergestellt und nur den letzten Ordner im Pfad gelöscht (Backup) und dann hat es funktioniert.
ChiliYago

1
Dies ist nicht die richtige Antwort. Dadurch wird ein Simlink erstellt, der iTunes nicht auf ein anderes Laufwerk umleitet. Es macht genau das Gegenteil - es leitet ein anderes Laufwerk in den iTunes-Backup-Ordner.
Vaiden

8

Der einfachste Weg ist das Löschen des Sicherungsordners in der Sicherung des Original-Apple-Ordners (in C: \ driver). Wenn wir den Befehl ausführen:

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

Windows erstellt eine Verknüpfung Sicherung in C: \ Treiber.


2
Dies ist die richtige Antwort, die das tut, was OP zu tun
gedachte

4

Ich hatte das gleiche Problem mit dem Fehler "Datei existiert bereits", bis ich "% AppData%" verwendete:

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

Junction erstellt für C: \ Benutzer \ Me \ AppData \ Roaming \ Apple Computer \ MobileSync \ Backup << === >> E: \ iTune Backups

Hinweis: Stellen Sie sicher, dass Sie gerade Anführungszeichen verwenden, andernfalls wird ein Syntaxbefehlsfehler angezeigt.


Ich mag diese einfache Methode, um sicherzustellen, dass der Quell- und der Zielordner nicht vorhanden sind, bevor die Junction erstellt wird. Durch das Erstellen der Junction wird der Quellordner erstellt, nicht jedoch der Zielordner. Also musste ich den Zielordner manuell erstellen und dann funktioniert alles wie erwartet.
Timoto

Dies hat es für mich behoben, aber es wäre nett, eine Erklärung zu haben, warum% AppData% es repariert.
Aureis

2

Ich wollte nur hinzufügen, dass der Fehler, den Sie in Ihrem obigen Kommentar erwähnt haben, System cannot find the path specifiedauftritt, wenn Sie symbolisch auf einer Ordnerebene verlinken, die in der ursprünglichen Quelle des Links nicht vorhanden ist.

Das heißt, Sie können nicht verknüpfen

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

zu zielen

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

Es wird nicht funktionieren, wenn nicht zumindest

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

existiert als Teil der Linkquelle. Sie müssten entweder verlinken

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

zu

"g:\programs\some folder1" 

oder Sie müssten mindestens einen leeren Ordner unter erstellen

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

und erstellen Sie dann den Link

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

zu

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

Dies scheint ein Fehler von Microsoft zu sein, aber diese Antwort ist tatsächlich richtig. Wenn Sie C:\fooauf E:` for instance, E verlinken, muss es \ foo` geben, in das cd geschrieben werden kann C:\foo. Wenn Sie jedoch eine CD E:` -- **not** erstellen , werden Sie in E: \ foo` abgelegt. Vielen Dank für den Hinweis, ich hätte es nie herausgefunden.
Qix
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.