Wie kann ich Windows zwingen, eine Datei mit einem Sonderzeichen umzubenennen?

86

Ich habe ein Lied, das Windows nicht abspielen kann, weil der Name der Datei ein Fragezeichen enthält.

"Where Have All the Cowboys Gone?.ogg" // as an example

Also versuche ich es umzubenennen und Windows beschwert sich, ob ich es im Explorer oder über die Eingabeaufforderung versuche.

Fehler, den ich beim Kopieren, Umbenennen oder Verschieben erhalte, ist:

Die Syntax für Dateiname, Verzeichnisname oder Datenträgerbezeichnung ist falsch

Gibt es in diesem Fall eine Windows- Möglichkeit, eine Umbenennung zu erzwingen?

Aktualisieren

Ich werde diese Frage im Auge behalten, aber nach 13 Antworten und vielen Versuchen (abgesehen von Lösungen von Drittanbietern) scheint es, dass Windows dies nicht kann (oder zumindest meine Fenster nicht, keine Kurznamen). Also akzeptiere ich die Antwort, die sowieso meine ursprüngliche Lösung für die Verwendung von Linux war. Es wäre schön zu sehen, wie Windows dies irgendwie handhabt. Hören Sie also nicht auf, nur weil ich diese Antwort akzeptiert habe. Die Frage bleibt bestehen!

CodeLes
quelle
5
Darf ich fragen, wie Sie zu diesem Zustand gekommen sind? Windows lässt Sie dies im Allgemeinen nicht zu.
Michael Kohne
und die antwort ist, dass ich die datei von einer linux box bekommen habe. Es ist eigentlich auch eine .ogg-Datei. aber ich frage mich , da ich bei der Arbeit bin und habe meine Linux bekam , wie es in Windows zu tun ... wäre schön zu wissen
codeLes
6
Das Dateisystem NTFS erlaubt einige Zeichen, die Windows nicht zulässt. Wenn Windows auf solche Dateien stößt, werden sie angezeigt.
Colonel Panic
1
Ich hatte einmal einen defekten Flashdrive, chkdsk verschob die Dateien in einen anderen Sektor, behielt aber die beschädigten Namen bei, die lustige Zeichen wie CRLF oder sogar Backspace enthielten. :)
Nulano
1
@ IvanChau: Kein Duplikat. Bei dieser anderen Frage handelt es sich um ein Leerzeichen im Namen, das im Gegensatz zu diesem hier (mit Wildcard) ein Kinderspiel ist.
Gr.

Antworten:

42

Besorgen Sie sich eine Linux-Live-CD und verwenden Sie diese.

Lachs
quelle
Von zu Hause aus benutze ich sowieso Linux ... und die Datei befindet sich auf einer tragbaren Festplatte. Ich habe mich nur gefragt, ob Windows damit umgehen kann ... so etwas wie ein <b> Sudo </ b> Windows-Befehl oder so etwas
codeLes
Dies ist ein Platzhalterproblem, kein Berechtigungsproblem. Unter Linux ist unter Windows fast alles ein gültiges Zeichen in einem Dateinamen (einschließlich Zeilenumbrüchen), es gibt eine Reihe reservierter Zeichen und keine effektive Möglichkeit, sie zu umgehen.
Lachs Elch
3
Neuere Linux-Distributionen wie Ubuntu unterstützen erfolgreich die wichtigsten Features von NTFS.
Atmocreations
1
Ubuntu 9.04 ist bei der NTFS-Unterstützung absolut fehlerfrei, mit ein oder zwei Unannehmlichkeiten.
Phoshi
1
@Pacerier in der Theorie könnten Sie möglicherweise, aber es würde bedeuten, dass Sie das Laufwerk in mehreren Betriebssystemen gleichzeitig bereitstellen, was im Allgemeinen eine schlechte Idee ist. Fahren Sie das neue Betriebssystem herunter und starten Sie es.
Lachs Elch
29

Haben Sie versucht, die Kurzversion des Dateinamens zu verwenden? Z.B

ren whereh~1.ogg where.ogg

Wenn dies die einzige Datei im aktuellen Ordner ist, die mit den ersten Buchstaben beginnt, verwenden Sie die ersten 6 Buchstaben des Namens (Leerzeichen werden ignoriert), gefolgt von einer Tilde (~) und einer 1.

GAThrawn
quelle
12
Da die Generierung von Kurznamen optional ist, abhängig davon, wie Windows derzeit konfiguriert ist, gibt Murphy an, dass im OP Kurznamen deaktiviert sind und in der Datei keine vorhanden sind. Verwenden Sie DIR / X, um den Kurznamen zu ermitteln, wenn er für eine Datei vorhanden ist. In dieser Spalte wird der Kurzname für eine Datei angezeigt, die sich vom Langnamen unterscheidet, sofern überhaupt einer vorhanden ist. Wenn es einen Kurznamen gibt, wäre dies eine plausible Antwort.
RBerteig
Sie sollten es wirklich versuchen ... Kurze Dateinamen können manchmal nützlich sein.
Alex
4
Keine Kurznamen, habe dein Beispiel ausprobiert und auch das Verzeichnis / x beweist, dass es keine gibt.
CodeLes
24
  1. In Windows 7: Führen Sie cmd.exe im Administratormodus aus.
  2. cd ins verzeichnis mit den dateinamen.
  3. run: chkdsk / V / f [Meine fehlerhaften Dateien befanden sich auf einem anderen Laufwerk als dem Betriebssystemlaufwerk, sodass die Bereitstellung aufgehoben werden konnte. Wenn es sich um das Betriebssystemlaufwerk handelt, muss dieses Stadium möglicherweise beim Start ausgeführt werden.]
  4. Warten Sie (muss möglicherweise neu gestartet werden).

Wie Sie sehen werden, hat chkdsk die Dateien tatsächlich für mich gelöscht. Wenn Sie also die Dateien behalten möchten, weiß ich nicht, was zu tun ist, aber dies wird die Dateien mit Sicherheit entfernen.

Ergebnisse / Cmd-Protokoll:

E:\islag\Music\llb>dir
 Volume in drive E is FreeAgent Drive
 Volume Serial Number is 5038-892A

 Directory of E:\islag\Music\llb

02/02/2011  12:18 PM    <DIR>          .
02/02/2011  12:18 PM    <DIR>          ..
04/04/2010  02:19 PM         4,014,099 01 Los Lonely Boys - Se?orita - www.file2
4ever.com.mp3
04/04/2010  02:18 PM         3,125,942 12 Los Lonely Boys - La Contestaci?n - ww
w.file24ever.com.mp3
               2 File(s)      7,140,041 bytes
               2 Dir(s)  87,743,991,808 bytes free

E:\islag\Music\llb>chkdsk /V
The type of the file system is NTFS.
Volume label is FreeAgent Drive.

WARNING!  F parameter not specified.
Running CHKDSK in read-only mode.

CHKDSK is verifying files (stage 1 of 3)...
  231424 file records processed.
File verification completed.
  34 large file records processed.
  0 bad file records processed.
  0 EA records processed.
  0 reparse records processed.
CHKDSK is verifying indexes (stage 2 of 3)...
18 percent complete. (29338 of 245164 index entries processed)
An invalid filename 01 Los Lonely Boys - Se?orita - www.file24ever.com.mp3 (3196
6) was found in directory 31962.
All filenames for File 31966 are invalid.
Minor file name errors were detected in file 31966.
An invalid filename 12 Los Lonely Boys - La Contestaci?n - www.file24ever.com.mp
3 (31973) was found in directory 31962.
All filenames for File 31973 are invalid.
Minor file name errors were detected in file 31973.
73 percent complete. (233817 of 245164 index entries processed)
Index entry 01 Los Lonely Boys - Se?orita - www.file24ever.com.mp3 in index $I30
 of file 31962 is incorrect.
Index entry 12 Los Lonely Boys - La Contestaci?n - www.file24ever.com.mp3 in ind
ex $I30 of file 31962 is incorrect.
  245164 index entries processed.
Index verification completed.

Errors found.  CHKDSK cannot continue in read-only mode.

E:\islag\Music\llb>dir
 Volume in drive E is FreeAgent Drive
 Volume Serial Number is 5038-892A

 Directory of E:\islag\Music\llb

02/02/2011  12:18 PM    <DIR>          .
02/02/2011  12:18 PM    <DIR>          ..
04/04/2010  02:19 PM         4,014,099 01 Los Lonely Boys - Se?orita - www.file2
4ever.com.mp3
04/04/2010  02:18 PM         3,125,942 12 Los Lonely Boys - La Contestaci?n - ww
w.file24ever.com.mp3
               2 File(s)      7,140,041 bytes
               2 Dir(s)  87,743,991,808 bytes free

E:\islag\Music\llb>chkdsk /V /f
The type of the file system is NTFS.
Cannot lock current drive.

Chkdsk cannot run because the volume is in use by another
process.  Chkdsk may run if this volume is dismounted first.
ALL OPENED HANDLES TO THIS VOLUME WOULD THEN BE INVALID.
Would you like to force a dismount on this volume? (Y/N) y
Volume dismounted.  All opened handles to this volume are now invalid.
Volume label is FreeAgent Drive.

CHKDSK is verifying files (stage 1 of 3)...
  231424 file records processed.
File verification completed.
  32 large file records processed.
  0 bad file records processed.
  0 EA records processed.
  0 reparse records processed.
CHKDSK is verifying indexes (stage 2 of 3)...
18 percent complete. (29339 of 245164 index entries processed)
Deleted invalid filename 01 Los Lonely Boys - Se?orita - www.file24ever.com.mp3
(31966) in directory 31962.
File 31966 has been orphaned since all its filenames were invalid
Windows will recover the file in the orphan recovery phase.
Correcting minor file name errors in file 31966.
Deleted invalid filename 12 Los Lonely Boys - La Contestaci?n - www.file24ever.c
om.mp3 (31973) in directory 31962.
File 31973 has been orphaned since all its filenames were invalid
Windows will recover the file in the orphan recovery phase.
Correcting minor file name errors in file 31973.
73 percent complete. (233642 of 245164 index entries processed)
Deleting index entry 01 Los Lonely Boys - Se?orita - www.file24ever.com.mp3 in i
ndex $I30 of file 31962.
Deleting index entry 12 Los Lonely Boys - La Contestaci?n - www.file24ever.com.m
p3 in index $I30 of file 31962.
  245164 index entries processed.
Index verification completed.
CHKDSK is scanning unindexed files for reconnect to their original directory.
  2 unindexed files scanned.
CHKDSK is recovering remaining unindexed files.
  2 unindexed files recovered.
CHKDSK is verifying security descriptors (stage 3 of 3)...
  231424 file SDs/SIDs processed.
Cleaning up 41 unused index entries from index $SII of file 9.
Cleaning up 41 unused index entries from index $SDH of file 9.
Cleaning up 41 unused security descriptors.
Security descriptor verification completed.
  6871 data files processed.
CHKDSK is verifying Usn Journal...
  1116928 USN bytes processed.
Usn Journal verification completed.
Correcting errors in the master file table's (MFT) BITMAP attribute.
Windows has made corrections to the file system.

 244196000 KB total disk space.
 158175168 KB in 30003 files.
     22820 KB in 6873 indexes.
         0 KB in bad sectors.
    306168 KB in use by the system.
     65536 KB occupied by the log file.
  85691844 KB available on disk.

      4096 bytes in each allocation unit.
  61049000 total allocation units on disk.
  21422961 allocation units available on disk.

E:\islag\Music\llb>dir
 Volume in drive E is FreeAgent Drive
 Volume Serial Number is 5038-892A

 Directory of E:\islag\Music\llb

02/02/2011  12:18 PM    <DIR>          .
02/02/2011  12:18 PM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  87,743,979,520 bytes free

E:\islag\Music\llb>
Aubrey Island
quelle
Perfekt funktioniert! Das sollte die Antwort sein.
enb081
2
@ enb081 Nein, das sollte nicht die Antwort sein, da es nichts mit der Frage zu tun hat, wie man die Dateien umbenennt . Meine Güte.
Jim Balter
12

chkdskbehebt manchmal ungültige Dateinamen. Sie erhalten eine Meldung zum Entfernen der Datei, da alle Dateinamen ungültig sind. Anschließend wird eine verlorene Datei wiederhergestellt. Sie finden die Datei dann in C:\found.000\file0000.chk. Dies ist ein effektiver Weg, um die problematischen Dateien zu entfernen, aber nicht der beste Weg, um sie zu behalten.

gohop
quelle
Dieser einfache Trick hat mir nur geholfen. Ich hatte mich damit abgefunden, die Datei zu verlieren, nachdem chkdsk seine Arbeit getan hatte, aber diese Antwort erinnerte mich daran \found.000.
Davidbak
Dankeschön. Dies ist einfach, aber effektiv 👍
علیریا
11

Ich habe die hartnäckige Datei gelöscht, indem ich 7zip geöffnet, die Datei gefunden und die Datei über 7zip umbenannt habe. Meins war ein Lied, in dem am Ende der Datei ein Leerzeichen stand.

anon
quelle
Sie meinen, die Datei selbst war noch nicht einmal in einem Archiv, aber Sie haben 7-Zip verwendet, um sie im Dateisystem umzubenennen? Clever.
Arjan
Das funktioniert super. Ich habe hier verschiedene andere Optionen ausprobiert, und dies war die erste, die funktioniert hat.
Rakensi
1
7zip konnte Ihre Datei umbenennen, da Dateinamen, die mit Leerzeichen enden, in Windows kein Problem darstellen. Dateinamen mit '?' sind ein Problem und 7zip kann sie nicht umbenennen.
Jim Balter
Dies funktionierte perfekt für mich, da sich herausstellte, dass mein Problem keine eigentlichen Fragezeichen, sondern seltsame Unicode-Zeichen waren, die in meinem Dateimanager nur als Fragezeichen angezeigt wurden. Durch Importieren der Dateien (es gab Hunderte) in ein 7-Zip-Archiv und anschließendes erneutes Exportieren konvertierte 7-Zip die fehlerhaften Zeichen einfach in Unterstriche (_). Dann konnte ich wieder mit den Dateien arbeiten. Problem komplett gelöst. Danke für einen tollen Tipp!
Jesper
Ich kann keine Dateien mit dem Zeichen ":" umbenennen: i.imgur.com/dZBqqeP.png
user598527
11

Geben Sie den UNC-Pfad an (siehe Benennen von Dateien, Pfaden und Namespaces ). Dies umgeht alle möglichen Einschränkungen. Sie würden es mit der \\?\Syntax tun .

Wenn sich Ihre Datei beispielsweise auf Ihrem Desktop befand (und Ihr Windows-Laufwerk C :), können Sie dies tun

copy "\\?\C:\Users\codeLes\Desktop\Where Have All the Cowboys Gone?.ogg" "\\?\C:\Users\codeLes\Desktop\Where Have All the Cowboys Gone.ogg"

Hinweis: Sie können mit dieser Syntax keine relativen Pfade verwenden. Sie müssen den vollständigen Pfad angeben. Und es funktioniert nicht mit dem renBefehl, sondern mit copyund move.

Joshua
quelle
4
habe es ausprobiert, kein Glück "Der Dateiname, der Verzeichnisname oder die Datenträgerbezeichnungssyntax sind falsch." Vielen Dank! Ich komme zu dem Punkt, an dem ich denke, dass die richtige Antwort darin besteht, Linux zu verwenden, um es umzubenennen (was ich getan habe).
CodeLes
Diese Antwort ist definitiv falsch. Die Einschränkung für gültige Zeichen befindet sich im NTFS-Treiber im Windows-Kernel. \\?\Umgeht lediglich die Dateipfadverarbeitung in der Laufzeitbibliothek im Benutzermodus. Das Öffnen von Dateinamen, die die 5 Platzhalterzeichen (*? "<>), Andere reservierte Zeichen (/ |: \) oder Steuerzeichen enthalten, ist nicht zulässig.
Eryk Sun
In meinem Fall funktioniert es: Ich hatte einen Dateinamen mit einem Unicode-Zeichen im Inneren und einem nachgestellten Namen \n . Fragen Sie mich nicht, wie ich es erstellt habe (nun, ich versuche zu prüfen, ob Sie in Windows mehrere Dateien mit demselben Namen erstellen können). Explorer, FreeCommander konnte es aber nicht löschen \\?\C:\....
Dio Phung
8

Verwenden Sie Recuva . Es ist in erster Linie zum Wiederherstellen gelöschter Dateien gedacht, bietet jedoch auch die Möglichkeit, nicht gelöschte Dateien in den Scan einzubeziehen.

Verweigern Sie nach dem Starten von Recuva den Assistenten und wählen Sie die richtige Festplatte aus. Gehen Sie dann zu "Optionen", suchen Sie nach der Option "Nach nicht gelöschten Dateien suchen", aktivieren Sie sie und starten Sie den Scan. Nach einer Weile werden alle Dateien auf der Festplatte angezeigt (unabhängig davon, ob sie gelöscht wurden oder nicht). Suchen Sie Ihre Dateien mit ungültigen Namen (die Namen sind bereits in der Ansicht festgelegt), wählen Sie sie aus, klicken Sie mit der rechten Maustaste und speichern Sie sie ("Wiederherstellen").

Bildbeschreibung hier eingeben

Ich habe es gerade gemacht (unter Windows XP).

Jan Lachnitt
quelle
Funktionierte gut für einen Dateinamen mit einer eingebetteten, /ndie 7-zip nicht manipulieren konnte.
Davidbak
5

Das Microsoft-Tool DISKEDIT.EXE ist ein einfaches Tool zum direkten Lesen und Schreiben von Rohdatenträgerdaten. Sie sollten in der Lage sein, den Cluster zu laden, der den Verzeichniseintrag für diese Datei enthält, und nur das beleidigende '?' Zeichen zu etwas Unschädlichem und schreibe es zurück auf die Festplatte.

Nach meinem Verständnis wurde das Microsoft-Tool diskedit (nicht das gleichnamige Norton Utilities-Tool, das nur für FAT-Volumes gilt) zuletzt in Windows 2000 SP4 verwendet. Aber es gibt einen Link dazu, der hier zu finden ist .

Um den richtigen Cluster zu finden, können Sie eine Testversion von DiskExplorer für NTFS herunterladen .

Sie würden mit Datei-> Laufwerk ... beginnen, um das Laufwerk zu öffnen, das diese fehlerhafte Datei enthält. Wählen Sie Goto-> Root Directory, um eine Verzeichnisansicht zu erhalten. Navigieren Sie mithilfe der MFT-Links zu dem Verzeichnis, in dem sich Ihre fehlerhafte Datei befindet. Wenn Sie dort ankommen, wird oben im Fenster so etwas wie "MFT # x12345 DIR: 'dirname', ... bla bla bla ... beginnend mit Cluster x9302AE , ... bla bla " angezeigt.

Wechseln Sie jetzt zu Microsoft diskedit. Führen Sie zuerst Datei-> Öffnen ... aus und geben Sie den Datenträgernamen C: an (wenn sich die Datei auf Ihrem Laufwerk C: befindet). Lassen Sie den Namen der Volume-Datei leer. Nehmen Sie diese Start-Cluster-Nummer und geben Sie sie in diskedit unter Read-> NTFS Clusters ...-> Starting Cluster ein (geben Sie sie als Hex-Nummer ein).

Verwenden Sie nun Ihre Pfeiltasten, um zum falschen Dateinamen zu scrollen. Es ist in Unicode, also suchen Sie nach etwas wie "Wo .Haben .Alle .Cowboys .Gone? ... ogg" Positionieren Sie den Cursor über dem schlechten "3F" -Zeichen und geben Sie etwas Sicheres ein, wie 5F (' _ '). Wählen Sie Write-> It, um es zurück auf die Festplatte zu schreiben.

Es gibt noch eine weitere Stelle, die getroffen werden muss (nicht sicher, ob eine oder beide benötigt werden). Klicken Sie jetzt im DiskExplorer auf die Mft # für die fehlerhafte Datei. Sie erhalten einen Bildschirm mit einem Baum, auf dem links "Strukturen" steht. Klicken Sie im Baum auf "Attribute". Es wird Ihnen eine Liste von Attributen angezeigt, von denen eines etwa $ 30 ... $ FILE_NAME sein wird. $ 30 hat also den Dateinamen. Klicken Sie im Strukturbaum unter dem Knoten $ 30 auf den Knoten Body. Wählen Sie das Menü Ansicht-> als Hex. Einige Zeilen weiter unten sollte der Dateiname erneut angezeigt werden. Where .Have .. etc. Auf der linken Seite des Bildschirms sehen Sie die Spalte Sector (Sektor), in der angegeben ist, welchen Plattensektor Sie betrachten.

Zurück über die Diskedit. Gehen Sie zu Read-> Sectors ... und geben Sie die Sektornummer aus dem DiskExplorer ein. Scrollen Sie wie zuvor nach unten und ersetzen Sie das Zeichen "3F" durch dasselbe Zeichen wie oben. Wählen Sie Write-> It, um es auf die Festplatte zu schreiben.

Ich habe das alles gemacht und die Tools sagen mir, dass ich den Charakter geändert habe, der Explorer jedoch nicht. Das Verzeichnis muss irgendwo zwischengespeichert werden. Nach einem Neustart wird die Änderung sichtbar.

user14068
quelle
+1 für die richtige (aber mehr oder weniger unpraktische) Herangehensweise, in der Hoffnung, dass sie ein wenig in die Höhe sprudelt und zumindest einige der falschen Antworten überholt. ;)
Gr.
5

Versuchen Sie es mit einem Drittanbieter-Tool wie dem Ken Rename- Tool:

Screenshot von Ken Rename

oder Master umbenennen .

Bildbeschreibung hier eingeben

Hier ist eine Liste der Tools zum Umbenennen von Dateien .

Ich würde sie selbst testen, aber ich verwende Windows Vista 64-Bit. Die Dateibehandlung kann unterschiedlich sein.

Wenn diese Tools fehlschlagen, können Sie Windows PowerShell testen. Siehe Umbenennen von Dateien im Windows PowerShell-Blog .

Tapferkeit
quelle
Ich habe Directory Opus ausprobiert und es hat nicht funktioniert (dieselbe Fehlermeldung).
user14068
Ich habe versucht, Flexible Renamer 8.4, die den Trick zu tun scheint. Bezogen auf derselben Website, die Sie erwähnt haben.
JohnnyBizzle
4

Haben Sie versucht, es in eine Datei mit dem richtigen Namen zu verschieben?

move "Where Have All the Cowboys Gone?.mp3" "Where Have All the Cowboys Gone.mp3"
Tom Kidd
quelle
2
versucht, kein Glück. "Die Syntax von Dateiname, Verzeichnisname oder Datenträgerbezeichnung ist falsch"
codeLes
Es hat bei mir mit dem copyBefehl geklappt.
Nicolas
@Nicolas, du meinst, es gab ein ?oder *oder <oder >oder :im Namen, und copy-ing hat gerade funktioniert? (Ich habe es nur ausprobiert und es war nicht überraschend für mich.)
Gr.
@Sz. Es tut mir leid zu hören, dass es bei Ihnen nicht funktioniert hat. Ich erinnere mich nicht an den Dateinamen, den ich umbenennen musste, aber er funktionierte bei mir mit dem copyBefehl. Hast du auch probiert cygwinund den bash Befehl mv?
Nicolas
1
@Nicolas Dank für den Versuch zu helfen, aber mein Punkt ist , dass diese Zeichen ich oben aufgeführt (und ein paar andere, wie ", |, /, und natürlich auch die umgekehrten Schrägstrich (was ich kann hier nicht :) eingeben scheinen)) sind in eine andere Klasse von problematischen Zeichen ( reserviert ), und ich fürchte, weder der copyBefehl noch Cygwinkönnen sie umbenennen. (Sie hatten höchstwahrscheinlich verschiedene Zeichen in Ihrem problematischen Dateinamen.)
Gr.
4
  • Wenn es sich um mehr als eine Datei handelt, erstellen Sie beispielsweise ein neues Verzeichnis mit einem einfachen Namen a.
  • Verschieben Sie jeweils eine einzelne Datei in dieses Verzeichnis.
  • In cmd.exegehen in das neue Verzeichnis und geben Sie den folgenden:

    ren *.ogg 1.ogg   
    

    Dies ist der Einfachheit halber. Dann können Sie es in XP umbenennen , wie Sie wollen, wie 1.oggzu Where Have All the Cowboys Gone.ogg. oggwar nur ein beispiel, erweiterung kann alles sein.

slhck
quelle
Huh? Wie soll die Datei (von OP) mit dem Platzhalter im Namen verschoben werden?
Gr.
4

Wenn Sie Cygwin installiert haben, sollte es in der Lage sein, sich um die Datei zu kümmern. Ich hatte gerade dieses Problem und die Verwendung von rm von Cygwin in einer Bash-Shell konnte die Datei problemlos löschen, wenn keine Windows-App, einschließlich Explorer und der Versuch, die UNC-Dateispezifikation mit CMD.exe zu verwenden, geholfen hat.

Ich würde mir vorstellen, dass mv es für den Fall tun würde, dass Sie die Datei behalten möchten.

Ein Cygwin-Setup mit Barebones dauert nur ein paar Minuten, und ich behalte es sowieso immer bei, weil es so viele gute Tools gibt. Es ist einfacher als Linux zu booten, selbst wenn Sie eine Live-CD verwenden.

ConceptJunkie
quelle
Ich habe versucht, cygwin konnte die Datei nicht löschen ('Keine solche Datei oder kein solches Verzeichnis'). Gute Idee.
JulianHzg
Dies funktionierte für mich oder unter Verwendung des ähnlichen MSYS2 (ein Rewrite von MSYS, ein Fork von Cygwin) unter Windows 8.1. Ich konnte die Datei unter einem neuen Namen speichern und sie dann normal löschen. Meine Datei hatte am Ende ein Leerzeichen und wurde mit 'dir' angezeigt - 'ls' hat es jedoch nicht angezeigt.
Brian Burns
@ bburns.km, zumindest hast du deine Aussage "works for me" qualifiziert. Natürlich funktioniert es für einen Dateinamen mit nur einem Leerzeichen am Ende. \\?\würde auch in diesem Fall funktionieren - bei ordnungsgemäßer Verwendung mit einem vollqualifizierten Unicode-Pfad. Es umgeht den Laufzeitbibliothekscode im Benutzermodus, der eine skurrile alte MS-DOS-Regel aus den 80er Jahren emuliert, die Leerzeichen am Ende von Namen ignoriert. Das Problem mit ungültigen und reservierten Zeichen kann so nicht behoben werden.
Eryk Sun
3

Angenommen, es handelt sich um ein FAT32- oder NTFS-Volume, versuchen Sie, chkdsk auszuführen. Das sollte "beschädigte" Verzeichniseinträge bereinigen, was (in diesem Fall) das Entfernen des? Bedeuten würde. Wenn es sich um das Startvolume handelt, müssen Sie möglicherweise einen Neustart durchführen.

Michael Kohne
quelle
Ich hatte einen Ordnernamen mit einem :und dadurch verschwand das Verzeichnis. Tu das NICHT.
leeand00
1
Tatsächlich chkdskbewegte den Inhalt des Ordners im Stammverzeichnis der Festplatte in einen verborgenen Ordner und ich konnte meine Dateien wieder dort sehen: superuser.com/a/320654/2293
leeand00
3

Das sollte funktionieren (zumindest für mich):

dir /X *cowboys*

Dieser Befehl würde ungefähr so ​​etwas ausgeben:

08/11/2011  15:21    <DIR>          WH5E97~1     Where Have All the Cowboys Gone
?.ogg

Das WH5E97~1ist was Sie suchen!
(Bitte beachten Sie: Dieser Code ist vollständig erfunden, sollte aber dem ähnlich sein, den Sie finden werden.)

Das zu wissen, ist einfach

rename WH5E97~1 "Where Have All the Cowboys Gone.ogg"

sollte den Trick machen.

Ich hoffe es hilft.

unerwünschtes Gehirn
quelle
Gute Lösung. Sollte funktionieren, funktioniert aber nur, wenn der Dateiname länger als 8 Zeichen ist (daher in meinem Fall nicht).
JulianHzg
Nicht unbedingt. Gemäß der Dokumentation werden bei der Eingabe dir t97*beide Dateien zurückgegeben, da der Platzhalter mit dem Sternchen mit der Datei übereinstimmt t.txt2, t97.txtindem der Kurzname mapT97B4~1.TXT
unwiredbrain
2

Hast du es versucht:

type "Where*.ogg" > "Where.ogg"

könnte funktionieren.

Atmocreations
quelle
1
Der Dateiname, der Verzeichnisname oder die Datenträgerbezeichnungssyntax sind falsch.
Ciaran
1

Versuchen Sie es mit einem Platzhalter für unterwegs -

move "Where Have All the Cowboys Gone*.mp3" "Where.mp3"

Das ist wahrscheinlich die beste Wahl, solange es nur eine Datei gibt, die mit dem Platzhalter übereinstimmt.

Michael Kohne
quelle
In diesem Fall sollte der Dateiname bereits so funktionieren, wie er ist, da das Fragezeichen ein Platzhalter ist. Das Sternchen wird diesmal nicht benötigt.
Synetech
1
Leider funktioniert das nicht, entweder mit dem ursprünglichen Dateinamen oder mit einem allgemeineren Platzhalter wie * .mp3.
JulianHzg
1

Ziehen Sie sie in einen neuen Ordner und legen Sie sie dort ab. Navigieren Sie in der Eingabeaufforderung zu diesem Ordner und geben Sie sie ein

ren *.* test.ogg
William Hilsum
quelle
1
Drag & Drop scheitert ebenfalls mit dem gleichen Fehler ... danke
CodeLes
6
Umgekehrt können Sie versuchen, alles andere aus dem betreffenden Ordner zu verschieben.
dort
1

Versuchen Sie , die Datei mit cygwin umzubenennen:

Der Befehl wäre: mv filename?.ogg filename.ogg

Keck
quelle
Ich habe Cygwin einmal unter Vista ausprobiert, schien das gleiche Problem zu haben, habe auf meiner aktuellen Arbeitsmaschine keinen Zugriff darauf ...
CodeLes
funktioniert nicht, auf Win7 64b versucht
Max
1

Die meisten internen Microsoft-Befehle werden mit dem Vorhandensein von gesteuert explorer.exe.

Öffnen Sie Ihren Task-Manager und überprüfen Sie die Liste der derzeit aktiven Prozesse. Sie werden explorer.exeunter ihnen finden. Klicken Sie mit der rechten Maustaste und beenden / stoppen / schließen Sie explorer.exe. Schließen Sie den Task-Manager noch nicht. Wechseln Sie nun mit einem sekundären Dateimanager in die anstößige Datei und versuchen Sie, sie mit Platzhaltern zu löschen oder umzubenennen. Es wird wahrscheinlich erfolgreich sein.

Kehren Sie nun zum Task-Manager-Fenster zurück, und klicken Sie mit der rechten Maustaste in der oberen Zeile auf Anwendungen. Wählen Sie dann die untere Schaltfläche Neue Aufgabe. Eintreten explorer.exe. Der Explorer wird wieder angezeigt und die anstößige Datei ist nicht mehr vorhanden.

Doktoro Reichard
quelle
1

Über die WinRAR-Benutzeroberfläche können Sie die Dateien umbenennen, ohne sie zuerst in ein Archiv packen zu müssen. Ich habe es in Windows 8.1 unter einem sehr langen Dateinamen getestet. Lief wie am Schnürchen.

KellyRavenholm
quelle
1

Wenn Sie WinRAR haben, packen Sie es in WinRAR, benennen Sie es in WinRAR um und entpacken Sie es.

Oder Sie können es mit einem VBScript versuchen, das nächste Skript nehmen und es unter einer Datei mit der Erweiterung .vbs speichern .

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

fso.MoveFile "Where Have All the Cowboys Gone?.ogg", "Where.ogg"
Jhonny D. Cano -Leftware-
quelle
2
Ich habe WinRAR nicht auf der Arbeit und meine Arbeitsmaschine ist nicht im Netz. Ich habe 7zip, sowieso kann ich das mit 7zip machen, habe es nur ausprobiert und würde es mir nicht erlauben, es zum Archiv hinzuzufügen ... der gleiche Fehler :-)
codeLes
Wenn Sie versuchen, Ihr Skript auszuführen, wird mir der Fehler "Pfad nicht gefunden" (Code: 800A004C) angezeigt. Ist es wichtig, dass sich diese Datei auf einem externen USB-Laufwerk befindet? Ich lege die Datei in den gleichen Ordner ... versuche als nächstes, den gesamten Speicherort der Datei fest zu codieren
codeLes
voll qualifizierter Name auch keine Arbeit ...
CodeLes
Ich stimme der Option chkdsk zu
Jhonny D. Cano -Leftware-
Versuchte es mit WinRAR. Hat nicht funktioniert Gleiches Ergebnis.
user14068
1

Ich hatte auch ein ähnliches Problem mit einem Ordner. Der Ordnername war ".min". was normalerweise nicht erlaubt ist.

Umbenennen nicht erlaubt (für Bild klicken)

Mit Winrar konnte ich das lösen. Was ich getan habe war

  • Rechtsklick auf den Ordner
  • Wählen Sie "Zum Archiv hinzufügen ...".
  • Wählen Sie einen neuen Archivnamen (einen ohne Sonderzeichen)
  • Wählen Sie in den Archivierungsoptionen "Dateien nach der Archivierung löschen" aus.
  • als wählen Sie OK

Zum Archiv hinzufügen ... (für Bild klicken)

  • Ich habe dann die .rar-Datei geöffnet
  • und benannte die Datei innerhalb

Dies ist zulässig, da Windows nicht wirklich überprüft, was sich in der .rar-Datei befindet. Sobald Sie den Namen ändern, extrahieren Sie die Datei und Sie sind fertig.

Ich hoffe das hilft.

Lefteris Eleftheriou
quelle
Funktioniert bei mir nicht. Mein Dateiname ist 10:2.
Pacerier
0

Verwenden Sie cmd.exe in diesem Verzeichnis mit Platzhaltern. Zum Beispiel:

ren "Where Have All the *.ogg" "Where Have All the Cowboys Gone.ogg"
harrymc
quelle
Das Globbing wird von der Shell erledigt.
Hallo71
3
@ Hallo71: Nicht in einer DOS-Box, Linux-Junge.
Harrymc
0

Der 7-Zip-Dateimanager (7-zip.org) benennt Dateien und Verzeichnisse um, die XP nicht kann. Nur verwendet, um eine .tar-Datei zu extrahieren und die beigefügte, illegal benannte .chm-Datei umzubenennen. Keine LiveCD erforderlich.

Tschüß!

monsignormoney
quelle
0

Ich hatte ein ähnliches Problem mit 2 verschachtelten Ordnern mit Unterordnern. Ich konnte einige Dateien weder umbenennen noch löschen (ich habe viele Möglichkeiten ausprobiert). Endlich habe ich die Lösung gefunden: Teracopy.

Installieren Sie es, klicken Sie mit der rechten Maustaste auf den Ordner oder die Datei und wählen Sie teracopy aus. Teracopy wird geöffnet, klicken Sie dann einfach auf deleteoder rename. Es wird umbenannt oder gelöscht.

Vielleicht möchten Sie es versuchen.

Serkan Polat
quelle
0

Ich bin in die gleiche Situation geraten.

Herum googeln Ich habe erfahren, dass es keine native Lösung gibt.

... und ich benutze als Shell die TCC der JPSoft, die auch diese verdammten Dateien nicht verarbeiten konnte.

Aber ich habe auch erfahren, dass Cedrick Collombs Unlocker ( http://www.emptyloop.com/unlocker/ ) damit umgehen kann.

Und ich hatte es in meinem Setup. Auch ich kann es nur empfehlen.

Nun, zumindest beinhaltet diese Lösung nicht das Verlassen der Windows-Umgebung ...

Marcus Vinicius Pompeu
quelle
0

Ich habe eine FLAC-Datei wie diese mit Winamps grundlegendem Befehl open in diesem Programm-Explorer-Fenster repariert. Als ich zum Ordner ging, hatte ich im Gegensatz zum Explorer die Option zum Umbenennen.

Freiberuflich
quelle
0

Ich bin auf eine ähnliche Situation gestoßen. Keine der veröffentlichten Lösungen hat für mich funktioniert, aber ich habe endlich eine einfache Lösung gefunden:

  • Kein externes Werkzeug erforderlich
  • Keine Kenntnisse in Programmierung oder Shell-Skriptsprache erforderlich

Ich habe die Datei einfach auf einen USB-Stick kopiert (ja, das Kopieren war noch möglich), dort umbenannt und wieder abgelegt! Ich überlasse es anderen zu erklären, warum das funktioniert hat.

David.
quelle
0

Dies ist keine direkte Antwort (wie kann Windows eine Datei umbenennen), aber das funktioniert bei mir. Die illegalen Dateien befinden sich normalerweise auf einem externen Laufwerk, sodass ich das externe Laufwerk an mein Android- Tablet anschließe. Dadurch kann ich die Datei umbenennen, die dann von Windows gelesen werden kann. Hier geht es um Sonderzeichen, aber das übliche Problem, das ich bekomme, ist ein Dateiname, der mit einem Leerzeichen beginnt oder endet oder mit einem '.'

Ich habe eines der Tools von Drittanbietern, FlexRenamer, ausprobiert.

JohnnyBizzle
quelle
0

In den meisten Fällen ist diese Antwort unbrauchbar .
Ich habe mich von Dateinamen mit Zeichen täuschen lassen, die als Fragezeichen dargestellt werden, obwohl es sich eigentlich nur um Zeichen handelt, die in den Standard-M $ -Fonts nicht angezeigt werden.

Soll ich diesen Beitrag löschen? Es könnte immer noch einigen Menschen helfen ...


Versuchen Sie, die in tab-completion integrierte Datei cmd.exe zu verwenden.

  1. dir /x hilft nicht (das NTFS wurde ohne Unterstützung für kurze Dateinamen erstellt):

    dir
     Verzeichnis von C:\Temporal\_black
    05.10.2015  21:23    <DIR>          none\none         ? ?????????, ?????????
    
    dir /X
     Verzeichnis von C:\Temporal\_black
    05.10.2015  21:23    <DIR>                       none\none         ? ?????????, ?????????
    
  2. Der Versuch, den Namen durch Eingabe von / copy'n'pasting umzubenennen, funktioniert nicht:

    C:\Temporal\_black> ren "? ?????????, ?????????" bart
    Syntaxfehler.
    
  3. Damit es funktioniert, müssen Sie die Tabulatorvervollständigung verwenden . Navigieren Sie einfach zum richtigen Verzeichnis in der Cmd-Shell, geben Sie ein ren, drücken Sie die Tabulatortaste und drücken Sie sie so oft, bis der richtige Name angezeigt wird:

    C:\Temporal\_black>ren "? ?????????, ?????????"
    

    Geben Sie dann den Rest ein und drücken Sie die Eingabetaste:

    C:\Temporal\_black>ren "? ?????????, ?????????" bart
    

    Sie werden belohnt mit:

    C:\Temporal\_black> dir
     Verzeichnis von C:\Temporal\_black
    05.10.2015  21:23    <DIR>          none\none         bart
    

Es ist ein bisschen langweilig, aber bisher hat dies bei Dateien und Verzeichnissen (Windows 7 und 8) immer funktioniert.

Witzige Randnotiz: Die ren-Befehle in 2. und 3. sind identisch, funktionieren jedoch nicht ohne Tab-Vervollständigung. Und selbst wenn Sie die Tabulator-Vervollständigung verwendet haben, funktioniert dies nicht mehr, sobald Sie den Namen nach dem bearbeiten ren(z. B. ein Fragezeichen entfernen und hinzufügen).

Limer
quelle