von Robocopy erstelltes rekursives Verzeichnis löschen, wenn „Der Dateiname zu lang ist“

von Robocopy erstelltes rekursives Verzeichnis löschen, wenn „Der Dateiname zu lang ist“

Nachdem ich robocopy.exe ausgeführt hatte, um einen Ordner C:\Users\ zu sichern, ohne den /xjSchalter zu verwenden, endete ich mit einem rekursiven Verzeichnis, das zu lang war. Wenn Sie es beispielsweise ausführen, dir /b /serhalten 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" /saber 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 emptyund verwenden Sie dann , robocopy empty\ "Application Data\" /mir"wodurch der gesamte Verzeichnisbaum gelöscht wird. Geben Sie dann zum Bereinigen ein rmdir emptyund ein und Sie sind fertig.rmdir "Application Data

Antwort2

Möglicherweise können Sie cdtief genug in das Verzeichnis vordringen, um den darunter liegenden Inhalt zu löschen, und cddann 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 diermDas mitgelieferte Dienstprogramm verwendet die Optionen -r(rekursiv) und -x(alles löschen).

rm -rx directoryname

Meine rmverwendet 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öglicherweisesudooder suzu 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. caclsauf 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

http://support.microsoft.com/kb/320081

verwandte Informationen