Datei mit ungültigen Zeichen in Windows löschen

16

Ich habe einige Dateien mit Doppelpunkten im Dateinamen (z. B. 1d67c0d23e859ed4a259749e4a720d9e: default-sink). Wenn ich versuche, sie mit dem Befehl von der Befehlszeile zu entfernen:

c:\backup> del /F *.*

Ich erhalte die Meldung "Das System kann die angegebene Datei nicht finden." für jede Datei. Wenn ich eine einzelne Datei spezifiziere:

c:\backup> del /F "1d67c0d23e859ed4a259749e4a720d9e:default-sink"

Ich erhalte die Meldung "Der Dateiname, der Verzeichnisname oder die Datenträgerbezeichnungssyntax sind falsch." Wenn ich versuche, rd für den übergeordneten Ordner zu verwenden, erhalte ich

Wie kann ich diese Dateien entfernen?

grom
quelle
2
Diese Dateien wurden auf der NTFS-Partition erstellt, als ich in Linux gebootet wurde. Ich denke, ich muss eine Linux-Bootdiskette verwenden, da Windows Doppelpunkte in Dateinamen auf der Ebene des Dateisystemtreibers nicht zu mögen scheint.
Grom
Related: superuser.com/q/31587/320611
David Refoua

Antworten:

22

Es gibt einen Microsoft-KB-Artikel mit einer Liste möglicher Methoden zum Löschen solcher Dateien unter:

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

In der Regel verwende ich die native API-Methode:

del "\\?\c:\path\1d67c0d23e859ed4a259749e4a720d9e:default-sink"

Gemäß:

http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

Dies :ist ein reserviertes Zeichen in NTFS. Die oben erwähnte native API-Methode ist die empfohlene Methode zum Löschen solcher Dateien.

Ausmith1
quelle
4
Dies funktioniert nicht für den Doppelpunkt, da er als benannter Datenstrom interpretiert wird.
Psusi
Das hat in meinem Fall funktioniert. Die Datei, mit der ich das Problem hatte, enthielt ein Komma,
Maher Fattouh
Danke, das hat bei mir funktioniert. Die Datei endete in einem Zeitraum. CA848D8F.
Mastro
1
Funktioniert nicht Mein Dateiname enthält einen Backslash.
Pacerier
Wenn der Dateiname enthält, :wie es das OP verlangt hat, funktioniert diese Methode nicht. Verwenden chkdskoder löschen Sie es von einem Live-Linux.
Sourav Ghosh
15

Ich denke, Sie können den 8.3-Namen versuchen?

del /F 1d67c0~1

Beachten Sie, dass Sie auf NTFS-Laufwerken die 8.3-Funktionalität explizit deaktivieren können. Wenn dies der Fall ist, haben Sie für diese Option kein Glück. So ermitteln Sie den Dateinamen dir adir /x

Früher gab es ein Freeware-Tool namens, delinvfileaber sie haben es auf Shareware / Paid umgestellt

Mark Henderson
quelle
Wie kann ich dies auf einem NTFS-Volume tun, das mit dem formatBefehl erstellt wurde, bei dem die Unterstützung von 8.3-Namen deaktiviert ist?
user2284570
1
@ user2284570 Diese Methode funktioniert nicht. Als ich diese Antwort schrieb, hatte Microsoft 8.3 Namen aktiviert, aber heutzutage ist sie standardmäßig deaktiviert.
Mark Henderson
@ MarkHenderson, Mein Dateiname ist 7:2. Wie verwende ich 8.3 als Dateinamen von 7:2?
Pacerier
@ Pacerier siehe meinen vorherigen Kommentar. Diese Methode funktioniert auf modernen Betriebssystemen nicht. Windows XP oder älter.
Mark Henderson
13

Das hat bei mir funktioniert:

  1. Ran chkdsk /f
  2. PC neu gestartet
  3. Dann konnte ich die Datei auswählen und löschen
JohnB
quelle
4

Schließen Sie alle geöffneten Dateien, die auf dem Laufwerk gespeichert sind, auf dem sich diese Dateien befinden. Öffnen Sie nun die Laufwerkseigenschaften.

"Arbeitsplatz" -> "Klicken Sie mit der rechten Maustaste auf dieses Laufwerk"> Eigenschaften

Gehen Sie dann zur Registerkarte " Extras " und klicken Sie unter "Fehlerprüfung" auf " Jetzt prüfen".

Bildbeschreibung hier eingebenKlicken Sie hier für ein größeres Bild

Dadurch wird die Bereitstellung Ihres Laufwerks aufgehoben und das gesamte Laufwerk auf Fehler überprüft. Schließlich werden solche Dateien mit unzulässigen Namen gelöscht. Am Ende wird eine Meldung angezeigt, die besagt, dass einige Dateien repariert wurden.

Ich habe solche Dateien erfolgreich von meiner externen Festplatte gelöscht.

Atul Vaibhav
quelle
3

Ich habe ein Subsystem für UNIX-basierte Anwendungen auf meinem PC installiert (Windows 7). Über die Windows-Shell kann ich eine Datei mit erstellen touch 1d67c0d23e859ed4a259749e4a720d9e:default-sinkund dann mit entfernenrm *:*

Joe Internet
quelle
POSIX-kompatible Dienstprogramme (z. B. SFU) können solche Dateien löschen.
Ausmith1
@JoeInternet: sigghh Microsoft hat ab 2012 alle Nicht-Windows-Subsysteme entfernt.
user2284570
... aber ein Unix-Subsystem ist zurück in Win 10.
user165568
1

Versuchen Sie, den übergeordneten Ordner in ein einzelnes Zeichen (a, 1 usw.) umzubenennen, und versuchen Sie dann, den übergeordneten Ordner zu löschen. Wenn dies nicht funktioniert, wechseln Sie in den ersten untergeordneten Ordner, benennen Sie ihn in ein einzelnes Zeichen um und versuchen Sie das Löschen erneut. Ich verwende diese Methode häufig für Dateien mit ungültigen Zeichen (fragen Sie mich nicht, wie sie erstellt werden, weil ich nicht weiß) oder für Dateien, bei denen der Pfad das Maximum überschreitet (fragen Sie erneut nicht, wie dies auftritt).

Joeqwerty
quelle
1

7zip kann Dateien löschen, an denen Windows scheitert. Ich habe es in der Vergangenheit bei überlangen Dateinamen verwendet, aber ich habe es nie bei Dateien mit Doppelpunkten ausprobiert. Sie werden normalerweise zur Bezeichnung von ADS verwendet.

Dentrasi
quelle
Dies liegt daran, dass 7-Zip Cygwin verwendet.
user2284570
1
Funktioniert nicht für beide Dateien. Erste Datei hat Dateinamen mit Backslash und zweite Datei hat Dateinamen mit Doppelpunkt.
Pacerier
Nein, weil 7-zip die Windows-API anstelle der Shell verwendet. Es hat die gleichen Einschränkungen wie die API: Es wird davon ausgegangen, dass Doppelpunkte Streams anzeigen.
user165568
7zip arbeitete für mich
user1278519
1

Ich habe ein Dual-Boot-System und keine der oben genannten Antworten hat für mich funktioniert. Wenn sich die Datei auf einer Festplatte befindet, die von Ihrem anderen Betriebssystem (Ubuntu 16.04 LTS für mich) gemountet wurde, können Sie sie einfach mit Ihrem anderen Betriebssystem löschen.

Ang Black
quelle
Dies ist bei einer Bindung ziemlich vernünftig (kann jedoch nicht mit einem Online-Computer durchgeführt werden). Ein nativer Dual-Boot ist ebenfalls nicht erforderlich, da wir dazu eine Live-Distribution wie die Fedora-Installationsdiskette oder Knoppix booten können. In einer Umgebung wie dieser sollte man jedoch vorsichtig sein, da der NTFS3G-Treiber, den wir zum Mounten dieses Systems verwenden, die meisten Windows-Berechtigungen / ACLs nicht berücksichtigt (weshalb es so effektiv ist, "feststeckende" Dateien zu entfernen). .
Spooler
0

Haben Sie versucht, die Dateinamen zu zitieren? Es wäre praktisch, den genauen Befehl einzugeben, den Sie ausführen.

womble
quelle
Ich habe es dem genauen Befehl hinzugefügt, den ich ausführen möchte, um eine Frage zu stellen.
Grom
0

Haben Sie versucht, einen Platzhalter zu verwenden? Zum Beispiel könnte 'del 1d67c0d23e859ed4a259749e4a720d9e *. *' Funktionieren.

Michael Kohne
quelle
Du hast es mit Wildcards versucht. Kein Glück
grom
1
Das nächste, woran ich denke, ist, das System mit einer Linux-CD zu booten (wie z. B. einer System-Rettungs-CD), das Volume dort zu mounten und das Löschen von dort zu versuchen. Zu diesem Zeitpunkt erhalten Sie möglicherweise interessante Ergebnisse, da Sie wissen, was im Dateisystem wirklich vor sich geht.
Michael Kohne
@MichaelKohne: Ich denke, die Verwendung einer Unix-Pfad-Implementierung ist auch die richtige Lösung. Aber warum Linux benutzen? Windows wird als NT-Subsystem ausgeführt, und es gibt bereits ein POSIX / Unix NT-Subsystem.
user2284570
1
@ user2284570 - da sie mit Linux erstellt wurden, scheint es wahrscheinlich, dass der Linux-NTFS-Treiber etwas zulässt, das er nicht haben sollte, was selbst die Windows-POSIX-Shell möglicherweise nicht am Dateisystemtreiber vorbeirutschen kann. Es ist viel einfacher, eine Live-Linux-CD zu booten, die gefälschte Datei zu entfernen und Windows neu zu starten.
Michael Kohne
@MichaelKohne: Nein, da UNC-Pfade bereits funktionieren (natives Subsystem) und bei den POSIX-Subsystemen kein direkter Zugriff auf alternative Datenströme besteht, können Sie diese also :in Dateien verwenden.
user2284570
0

Haben Sie versucht, mit dir / X den tatsächlichen 8.3-Namen herauszufinden, und dann versucht, diesen Namen zu löschen?

Oder könnte diese Datei einen alternativen Datenstrom haben? Vielleicht möchten Sie es sich mit dem Tool unter http://www.nirsoft.net/utils/alternate_data_streams.html ansehen, um zu sehen, was Ihnen das sagen kann. .

Michael Kohne
quelle
0

Ich hatte einen Ordner mit einem Kommma im Namen. Ich habe einige der oben genannten Vorschläge ausprobiert und konnte sie nicht zum Laufen bringen.

Ich konnte die Ordner mit cygwin löschen. Das Installieren dieser App ist nicht jedermanns Sache, aber es wird den Job erledigen.

Rich MacDonald
quelle
0

Keiner der obigen Vorschläge hat für mich funktioniert. Ich habe WinRar benutzt. Öffnen Sie winrar und Sie werden eine Liste von Dateien sehen, in der Sie die verdächtige Datei "filename" (die von Ihnen als "filename: some_text.txt" erstellt wurde. Benennen Sie die Datei in Winrar um und geben Sie eine Erweiterung an (wie .txt oder .doc).

Kehren Sie zum Windows Explorer zurück und sehen Sie "filename .txt" (oder doc). Löschen Sie es von dort.

Prashant Lamba
quelle