Löschen Sie unter Windows eine Datei mit dem Namen „NUL“.
Lesezeit: 5 Minuten
Ich habe ein Programm unter Windows 7 ausgeführt, das unter Cygwin kompiliert wurde und “NUL” als Ausgabedateiname übergeben hat. Anstatt die Ausgabe zu unterdrücken, wurde tatsächlich eine Datei namens “NUL” im aktuellen Verzeichnis erstellt. (Anscheinend erwartet es “/dev/null”, sogar unter Windows.) Jetzt stecke ich mit dieser “NUL”-Datei fest, die ich nicht löschen kann!
Ich habe bereits versucht:
Windows Explorer – Fehler: “Ungültige MS-DOS-Funktion” (ja, das steht im Ernst!)
Eingabeaufforderung mit „del NUL“ – Fehler: „Der Dateiname, der Verzeichnisname oder die Syntax der Datenträgerbezeichnung ist falsch.“
Löschen des gesamten Verzeichnisses – genauso wie das Löschen der Datei
remove() in einem C-Programm – schlägt ebenfalls fehl
Wie kann ich diese NUL-Dateien loswerden (ich habe inzwischen mehrere), außer die vollständige Cygwin-Umgebung zu installieren und dafür ein C-Programm unter Cygwin zu kompilieren?
Hast du es versucht del *.*?
– chqrlie
10. Juli 2021 um 18:32 Uhr
Besser noch, wie kann man seine Entstehung verhindern?
– Dragos Bandur
10. Dezember 2021 um 21:10 Uhr
xxbbcc
Öffnen Sie eine Eingabeaufforderung und verwenden Sie diese Befehle, um die NUL-Datei zuerst umzubenennen und dann zu löschen:
C:\> rename \\.\C:\..\NUL. deletefile.txt
C:\> del deletefile.txt
Verwendung der \\.\ prefix weist die übergeordneten Datei-E/A-Funktionen an, den Dateinamen ungeparst an den Gerätetreiber zu übergeben – auf diese Weise können Sie auf ansonsten ungültige Namen zugreifen.
Lesen Dieser Artikel über gültige Datei-/Pfadnamen in Windows und die verschiedenen reservierten Namen.
Interessanterweise kann Far Manager diese Datei ohne Probleme löschen. Vielleicht wendet es diesen Trick intern bedingungslos an.
– Joey
26. Juli 2013 um 14:31 Uhr
Vielen Dank! Sogar das direkte Löschen scheint zu funktionieren, wenn ich das Präfix \\.\ vor dem vollständigen Pfad verwende, z. del \\.\C:\Temp\NUL
– EM0
26. Juli 2013 um 14:37 Uhr
@Јοеу Auf meinem Windows 8 hatte Far Probleme mit dem Löschen/Erstellen einer Datei namens „nul“, aber ich verwende v1.75 – v3.0 hat diese Funktion möglicherweise hinzugefügt.
– xxbbcc
26. Juli 2013 um 14:37 Uhr
Es hat für mich funktioniert. Es ist wichtig, daran zu denken, den Dateipfad wie folgt zu beginnen: \\.\C:\
– Revolutionär
20. November 2013 um 19:22 Uhr
Im Allgemeinen ist es besser, „\\?\“ anstelle von „\\.\“ zu verwenden, da das Fragezeichen-Präfix die gesamte Normalisierung umgeht, einschließlich des Entfernens nachgestellter Leerzeichen und Punkte. Es wird genau der Name übergeben, den Sie in Anführungszeichen übergeben, z. B. “\\?\C:\nul. “, während “\\.\C:\nul. ” normalisiert wird als “\\.\C:\nul”. .
– Eryk Sonne
28. Oktober 2019 um 21:10 Uhr
Wenn Sie Git für Windows installiert haben (v2.18), gehen Sie wie folgt vor
Öffnen Sie das Verzeichnis mit den Dateien, die Sie entfernen möchten
Linksklick und auswählen Git Bash Here
Typ rm nul.json an der Eingabeaufforderung und drücken Sie die EINGABETASTE, die Datei sollte jetzt entfernt werden.
HINWEIS: Diese Screenshots zeigen das Entfernen der Datei nul.topo.json Dies ist eine weitere Datei, die ich nicht durch einfaches Löschen entfernen konnte.
Dies löst ein anderes Problem. OP versucht, eine Datei namens “NUL” zu löschen, die ein Schlüsselwort in Windows ist.
– Zach
7. Oktober 2018 um 13:11 Uhr
Mein Beispiel gilt auch für Dateien mit dem Namen NUL (ich habe es bestätigt)
– Geovani Martínez
8. Oktober 2018 um 16:58 Uhr
Danke, genau das hat mein Problem hervorragend gelöst !! Wie Zack sagt, löst dies ein anderes Problem, aber es scheint, als würde ich hier direkt googlen.
– Brian
23. Februar 2019 um 10:23 Uhr
Diese Lösung hat bei mir funktioniert, es scheint, dass die Windows-CMD die Datei nicht aus einer Erklärung löschen kann, die ich gefunden habe. Win32-Tools können nicht auf diese Datei zugreifen – daher ist die Git-Bash und die Verwendung von rm eine gute Lösung.
– Lupine
3. April 2019 um 11:48 Uhr
Wenn Sie Git unter Windows haben, klicken Sie einfach mit der rechten Maustaste auf den Ordner, der die Nulldatei enthält -> gehen Sie hier zu Gitbash -> und geben Sie je nach Dateityp “rm nul” oder “rm nul.json” ein.
Ich hatte ein ähnliches Problem. Es wurde wahrscheinlich auch von Cygwin verursacht (da ich dies regelmäßig verwende), aber ich habe seitdem vergessen, wie genau die Datei erstellt wurde.
Ich hatte auch Probleme es zu löschen. Ich habe den Rat einiger anderer Posts befolgt und versucht, in den abgesicherten Modus zu booten, um die Datei zu löschen, obwohl dies nichts bewirkt hat. Der Tipp von +xxbbcc hat bei mir auch nicht funktioniert.
Ich konnte die Datei jedoch mit dem Cygwin-Terminal löschen! Cygwin erschafft und Cygwin zerstört.
So entfernen Sie eine Nulldatei, die sich hier befindet: C:\unix\cygwin\dev\nul
Ich verwende einfach (nur unter Windows 10 getestet): Del \?\C:\unix\cygwin\dev\NUL
Spryce
Ich habe das etwas anders gelöst.
Ich dachte, ich würde das hier hinzufügen, weil es in den Google-Ergebnissen weit oben steht und ich ein ähnliches Problem für a hatte Mappe mit dem Namen NULL.
Ich habe es versucht rmdir\\?\C:\My\Path\NUL und rmdir\\.\C:\My\Path\NUL ohne Erfolg und habe auch mehrere Befehle mit Bash aus meiner SourceTree-Installation ausprobiert. Keine Freude.
Am Ende habe ich verwendet DIR /X /A von cmd, um die Kurznamen im übergeordneten Verzeichnis aufzulisten. Das hat mir gezeigt NUL~1 für meinen NUL-Ordner und identifizierte den Kern des Problems.
Dies wurde dann im Standardbefehl verwendet rmdir /s NUL~1 und das Problem endlich gelöst.
asdf
Versuchen Sie, ein kurzes C-Programm zu schreiben, das die Windows-API aufruft, um diese Datei zu löschen.
Wenn das nicht funktioniert, versuchen Sie, ein Handle für die Datei mit CreateFile() mit FILE_FLAG_DELETE_ON_CLOSE zu öffnen, und schließen Sie dann das Handle.
Ziemlich sicher, dass dies von der Win32-Schicht so interpretiert würde, dass es sich auf das sogenannte “DOS” -Gerät bezieht, nicht auf die Datei. (Vermutlich würde das “DOS”-Gerät nicht wirklich gelöscht werden, denn wenn das etwas gewesen wäre, das aus Versehen geschehen könnte, dann bin ich mir ziemlich sicher, dass es jemandem passiert wäre, der hier oder bei mitgemacht hat superuser.com/questions/282194/… …)
– SamB
18. Juni 2017 um 15:49 Uhr
14183500cookie-checkLöschen Sie unter Windows eine Datei mit dem Namen „NUL“.yes
Hast du es versucht
del *.*
?– chqrlie
10. Juli 2021 um 18:32 Uhr
Besser noch, wie kann man seine Entstehung verhindern?
– Dragos Bandur
10. Dezember 2021 um 21:10 Uhr