Diese Frage hat hier bereits eine Antwort:
Meine Frau hat mehrere Dateien und Ordner, die auf irgendeine Weise Dateinamen haben, die dazu geführt haben, dass sie auf normale Weise oder über die Befehlszeile nicht mehr löschbar sind (nicht gelöscht werden können). Ich glaube, die Dateinamen sind aufgrund der Tiefe der Ordnerstrukturen zu lang. Kennt jemand ein gutes Dienstprogramm zum Bereinigen von Dateien wie folgt?
CTRL
+DELETE
meiner Meinung nach die einfachste Methode ...Antworten:
Wenn Sie ein Verzeichnis, das lange Pfade enthält, vollständig löschen möchten,
robocopy
funktioniert das SEHR gut:Dies funktioniert, weil robocopy intern die Unicode-fähigen Versionen der Win32-Funktionen mit dem
\\?\
Präfix für Dateipfade verwendet . Diese Funktionen haben ein Limit von 2¹⁶-1 (32.767) Zeichen anstelle von 259.Möglicherweise müssen Sie diesen Vorgang mehrmals durchführen, um alle Dateien zu entfernen.
quelle
An einer Eingabeaufforderung:
Dadurch werden Ihre Dateien / Ordner im Kurznamenformat aufgelistet. Verwenden Sie dann den Kurznamen genau so, wie er geschrieben wurde, um die Datei zu löschen:
quelle
dir
odercd ..
.dir
verwendenpushd
statt. Das hat bei mir geklappt.Ich arbeite mich schrittweise in den Pfad ein, benenne jeden nachfolgenden übergeordneten Ordner in "1" um und versuche, ihn zu löschen. Sie verkürzen den Pfad jedes Mal effektiv und ich musste nie mehr als 4 oder 5 Verzeichnisse bearbeiten, bis ich endlich in der Lage bin, die gesamte Verzeichnisstruktur zu löschen (die möglicherweise Ihren Wünschen entspricht oder nicht). Sie können dies auch aus dem letzten untergeordneten Ordner heraus tun und sich nach oben oder unten arbeiten.
quelle
mv * 1 && cd 1
. Dies hat nicht funktioniert, wenn sich mehrere Dateien im Verzeichnis befunden haben, aber zu diesem Zeitpunkt hat esrm -rf *
normalerweise geklappt.In einigen Programmen, einschließlich Command Prompt (
cmd.exe
), können Sie die maximale Dateilänge umgehen, indem Sie dem vollständigen Pfad Folgendes voranstellen\\.\
:quelle
rm -rf \\directoryname
Ein Trick, den ich verwendet habe, um die Längenbeschränkung für "vollständigen Pfad und Dateinamen" zu umgehen, um etwas zu verschieben, zu kopieren oder zu löschen, besteht darin, es mit einem zugeordneten Laufwerksbuchstaben zu kürzen, der auf einen Ordner zeigt Weg den Weg hinunter .
Sie haben also c: \ some \ long \ path ... \ und \ foo \ bar \ folders \ oldfiles \ myoldfile.txt.
Ordnen Sie dann irgendwo entlang des Pfades einen beliebigen Laufwerksbuchstaben zu, sodass der erste Abschnitt des Pfades nur wenige Zeichen lang wird. Voraussetzung: Der Ordner muss sich in einem freigegebenen Ordner befinden (möglicherweise bereits, wenn er sich auf einem Server befindet, wo ich dies getan habe). Wenn dies noch nicht geschehen ist, wählen Sie einen Ordner im Pfad aus und teile es. Erlauben Sie je nach Ihrer Umgebung und Paranoia-Stufe jedem, den Zugriff auf die Freigabe zu ändern, solange die NTFS-Berechtigungen einigermaßen eingeschränkt sind. Wenn Sie möchten, können Sie nur die Änderungsrechte für Ihr eigenes Konto zulassen.
Wechseln Sie nun zu dem freigegebenen Ordner oder einem darin enthaltenen Ordner, und geben Sie ihn frei, oder verwenden Sie die Befehlszeile wie folgt. Angenommen, Sie haben den Ordner "foo" als "fooshare" freigegeben, dann könnten Sie dies tun
und das Laufwerk X: zeigt jetzt direkt auf den Ordner "folders" in dieser Freigabe, sodass "x: \ oldfiles \ myoldfile.txt" jetzt ziemlich kurz ist.
(Das "/ persistent: no" bedeutet, dass dies beim nächsten Neustart nicht überlebt und Sie später verwirrt. Vergessen Sie nicht, die Freigabe Ihres Ordners aufzuheben, wenn Sie fertig sind.)
Denken Sie daran, dass Sie den Ordner mit der Datei nicht unbedingt freigeben müssen. Befindet sich der Ordner bereits in einem freigegebenen Ordner, können Sie ihn einfach über die Freigabe und die verschachtelten Ordner einem Zielordner in der Nähe der Datei zuordnen.
Ich musste diese Technik verwenden, um eine massive Robokopie zwischen zwei Servern durchzuführen, als wir feststellten, dass Benutzer Laufwerke ziemlich tief in der Ordnerstruktur zugeordnet hatten, so dass sie 255 Zeichen von dort verwenden konnten, was jedoch die Gesamtlänge des Dateipfads überschritt beim Zugriff vom lokalen Laufwerkstamm.
quelle
subst x: C:\Some\first\part\of\the\long\path
das Laufwerk mitsubst x: /d
subst
Trick scheint gut zu funktionieren, solange der Dateiname nicht so lang ist, dass er selbst im Stammverzeichnis eines Laufwerks mehr als 260 Zeichen umfasst.net use
net use x: \\localhost\c$\bar\folders /persistent:no
Der einfachste Weg, den ich gefunden habe, ist das Booten von einer Ubuntu-Live-CD.
Alternativ können Sie auf halber Strecke des Pfades einen freigegebenen Ordner erstellen und diesem dann ein Netzwerklaufwerk zuordnen und den Löschvorgang aus dem zugeordneten Ordner ausführen (auch auf demselben Computer).
quelle
Benennen Sie das Verzeichnis zum Ausschneiden / Einfügen der Datei an einer anderen Stelle um, und löschen Sie sie dann. Funktioniert hier.
Oder einfach von der Eingabeaufforderung aus, wenn Sie keine Lust haben, sich die Mühe zu machen.
quelle
node_modules
Ordner), auf den Desktop ziehen und löschen. Spülen und wiederholen Sie den Vorgang, während Sie mehrere Ordner gleichzeitig öffnen. Was für ein widerliches Problem.Wahrscheinlich nicht der beste Weg und ich bin interessiert zu sehen, was andere sich einfallen lassen -
Ich hatte dies einmal und habe ein paar Dinge ohne Glück versucht. Anstatt nach einem guten Tool zu suchen, habe ich es mit der Windows Disk neu gestartet, bin zur Wiederherstellungskonsole gegangen und habe es einfach von dort gelöscht. Das erste Mal funktioniert und wirklich gut!
Ich habe gerade ein Google für Sie durchgeführt und festgestellt, dass DelinvFile gut aussieht, aber nicht dafür bürgen kann.
Bearbeiten - Achtung, soeben gesehen ist das nur ein Versuch - Vielleicht nicht so gut wie ich zuerst gedacht habe!
quelle