Löschen Sie eine Datei namens "NUL" auf Windows
Lief ich ein Programm unter Windows 7 kompiliert wurde unter Cygwin und übergeben "NUL" als Ausgabe-Datei-Namen. Anstatt die Unterdrückung der Ausgabe eigentlich erstellt eine Datei namens "NUL" im aktuellen Verzeichnis. (Anscheinend ist es erwartet, dass "/dev/null", auch auf Windows.) Jetzt bin ich stecken mit diesem "NUL" - Datei, die kann ich nicht löschen!!!
Hab ich schon versucht:
- Windows-Explorer - Fehlermeldung: "Ungültige MS-DOS Funktion" (ja, das ist ernst, was Sie sagt!)
- Eingabeaufforderung mit "NUL del" - Fehlermeldung: "Der Dateiname, Verzeichnisname oder Volumen
label syntax is incorrect." - Löschen Sie die gesamte directory - gleiche Angebot als nur das löschen der Datei
remove()
in einem C-Programm - auch nicht
Wie kann ich loszuwerden, diese NUL-Dateien (ich habe mehrere jetzt), kurz auf die Installation der volle Cygwin-Umgebung und Kompilierung eines C-Programm unter Cygwin zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Öffnen Sie eine Eingabeaufforderung und verwenden Sie diese Befehle, um zuerst umbenennen und dann löschen Sie die NULL-Datei:
Mithilfe der
\\.\
Präfix erzählt die high-level-Datei-I/O-Funktionen übergeben werden, die mit dem Namen von dem Gerät-Treiber - Sie können auf diese Weise sonst ungültige Namen.Lesen dieser Artikel über gültige Datei - /Pfad-Namen in Windows und den verschiedenen reservierten Namen.
Wenn Sie Git für Windows Installiert (v2.18) führen Sie die folgenden
Git Bash Here
rm nul.json
an der Eingabeaufforderung, und drücken Sie ENTER, wird die Datei sollte nun entfernt werden.HINWEIS: Diese screenshots zeigen die Entfernung der Datei
nul.topo.json
die andere Datei, die ich nicht entfernt mit einem einfachen löschen.Hatte ich ein ähnliches Problem. Es wurde wahrscheinlich verursacht durch Cygwin als auch (seit ich dies regelmäßig), aber ich hab da vergessen genau, wie die Datei erstellt wurde.
Hatte ich auch Mühe, es zu löschen. Ich folgte dem Rat einiger anderer Beiträge und versucht zu Booten in den abgesicherten Modus, um die Datei zu löschen, obwohl diese nichts getan. Der Tipp von +xxbbcc hat bei mir nicht funktioniert entweder.
Allerdings war ich in der Lage, um die Datei zu löschen mit Hilfe der Cygwin-terminal! Cygwin createth und Cygwin vernichtet.
rm
die Datei gelöscht.Entfernen nul-Datei befindet sich hier:
C:\unix\cygwin\dev\nul
Ich einfach (getestet nur auf Windows-10) :
Del \?\C:\unix\cygwin\dev\NUL
Löste ich dieses in einer etwas anderen Weise.
Ich dachte, ich möchte hinzufügen, dieses hier, weil es hoch in den google-Ergebnissen und ich hatte ein ähnliches Problem, für ein Ordner namens NUL.
Versuchte ich
rmdir\\?\C:\My\Path\NUL
undrmdir\\.\C:\My\Path\NUL
ohne Erfolg und habe auch versucht einige Befehle über die bash mein SourceTree installation. Keine Freude.Am Ende, die ich verwendet
DIR /X /A
von cmd ein, um eine Liste der Kurznamen in das übergeordnete Verzeichnis. Das hat mir gezeigtNUL~1
für meine NUL Ordner und identifiziert den Kern des Problems.Diese wurde dann verwendet, in den standard-Befehl
rmdir /s NUL~1
und schließlich das Problem behoben.mkdir nul
im cygwindir /x/a
zeigt keine kurzen Namen, so dass die Ordner ist wirklich mit dem Namen "nul".rd \\?\C:\Path\NUL
undrd \\.\C:\Path\NUL
arbeiten beide in diesem Fall.Schreiben Sie ein kurzes C-Programm, dass Aufrufe der Windows-API zu löschen, die Datei.
http://msdn.microsoft.com/en-us/library/aa363915%28v=vs.85%29.aspx
Wenn das nicht funktioniert, öffnen Sie ein handle auf die Datei mit CreateFile() mit FILE_FLAG_DELETE_ON_CLOSE, und dann schließen Sie den Griff.