Nachdem ich robocopy.exe ausgeführt hatte, um einen Ordner C:\Users\ zu sichern, ohne den /xj
Schalter zu verwenden, endete ich mit einem rekursiven Verzeichnis, das zu lang war. Wenn Sie es beispielsweise ausführen, dir /b /s
erhalten Sie die folgende Fehlermeldung:
Der Verzeichnisname C:\Benutzer\ ... \AppData\Local\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten\Anwendungsdaten ist zu lang.
Ich habe versucht, es zu löschen, rmdir "Application Data" /s
aber ich erhielt die Fehlermeldung „Der Dateiname ist zu lang“
Ich habe mir andere Lösungen angesehen, aber ich dachte, ich könnte das Tool verwenden, dasverursachtdas Problem zulösenEs.
Antwort1
Erstellen Sie mit ein leeres Verzeichnis mkdir empty
und verwenden Sie dann , robocopy empty\ "Application Data\" /mir"
wodurch der gesamte Verzeichnisbaum gelöscht wird. Geben Sie dann zum Bereinigen ein rmdir empty
und ein und Sie sind fertig.rmdir "Application Data
Antwort2
Möglicherweise können Sie cd
tief genug in das Verzeichnis vordringen, um den darunter liegenden Inhalt zu löschen, und cd
dann wieder nach oben gehen und den Rest löschen.
Wenn das nicht funktioniert und Sie immer noch nicht weiterkommen, laden Sie dieKostenlose DemoVersion meiner Hamilton C-Shell (vollständige Offenlegung: Ich bin der Autor) und verwende dierm
Das mitgelieferte Dienstprogramm verwendet die Optionen -r
(rekursiv) und -x
(alles löschen).
rm -rx directoryname
Meine rm
verwendet die neuelanger Unicode-DateinameFormat intern, sodass Pfade mit bis zu 32.000 Zeichen bearbeitet werden können, und damit sollte es klappen.
Wenn Sie feststellen, dass das Problem auch Berechtigungen betrifft, müssen Sie möglicherweisesudo
oder su
zu erhöhen, zB
sudo rm -rx directoryname
In wirklich hartnäckigen Fällen kann es sein, dass Sie durch eine ACL behindert werden, die den Zugriff verhindert, z. B. cacls
auf Berichte Everyone:(DENY)
. In diesem Fall müssen Sie möglicherweise diesen ACE (Access Control Entry) entfernen.
cacls directoryname /e /r everyone
Abschließend möchte ich sagen, dass dies wirklich hilfreich ist. Meine Serverprotokolle zeigen mir, dass Leute meine Software herunterladen, um dies auszuprobieren, und ich möchte, dass dies funktioniert. Wenn Sie auf einen Fall stoßen, in dem dies nicht der Fall war, hoffe ich, dass Sie sich bei mir melden, damit ich den Grund dafür beheben und es zum Laufen bringen kann. Dinge, die man nicht löschen kann, kommen häufig vor, und ich möchte alle Fälle abgedeckt haben.
Antwort3
Sie können auch eines der folgenden Dinge versuchen:
Lösung 1:Verwenden Sie einen automatisch generierten 8.3-Namen, um auf die Datei zuzugreifen
Lösung 2:Umbenennen oder Verschieben eines tiefen Ordners
Lösung 3:Ordnen Sie ein Laufwerk einem Ordner in der Pfadstruktur zu. Ordnen Sie ein Laufwerk einem Ordner innerhalb der Pfadstruktur der Zieldatei oder des Zielordners zu. Diese Methode verkürzt den virtuellen Pfad.
Lösung 4:Verwenden Sie eine Netzwerkfreigabe, die so tief wie der Ordner ist. Wenn die Lösungen 1, 2 und 3 nicht praktisch sind oder das Problem nicht beheben, erstellen Sie eine Netzwerkfreigabe, die so tief in der Ordnerstruktur liegt wie möglich, und benennen Sie die Ordner dann um, indem Sie auf die Freigabe zugreifen.
Lösung 5:Verwenden Sie ein Werkzeug, das tiefe Pfade durchqueren kann