J'ai une chanson que Windows ne peut pas lire car il y a un point d'interrogation dans le nom du fichier.
"Where Have All the Cowboys Gone?.ogg" // as an example
J'essaie donc de le renommer et Windows se plaint de l'avoir essayé dans l'explorateur ou à partir de l'invite de commande.
L'erreur que j'obtiens en essayant de copier, renommer ou déplacer est:
La syntaxe du nom de fichier, du nom de répertoire ou de l'étiquette de volume est incorrecte
Existe-t-il un moyen Windows pour forcer un changement de nom dans ce cas?
Je garderai un œil sur cette question, mais après 13 réponses et de nombreuses tentatives (mis à part des solutions tierces), il semble que Windows ne puisse pas le faire (ou du moins mes fenêtres ne peuvent pas, pas de noms abrégés). Donc, j'accepte la réponse qui était de toute façon ma solution originale d'utiliser Linux. Ce serait bien de voir Windows gérer cela d'une manière ou d'une autre, alors ne vous arrêtez pas simplement parce que j'ai accepté cette réponse, la question est toujours d'actualité!
Prenez un live-cd linux et utilisez-le.
Avez-vous essayé d'utiliser la version des noms de fichiers courts de son nom? Par exemple
ren whereh~1.ogg where.ogg
S'il s'agit du seul fichier du dossier en cours qui commence par les premières lettres, utilisez les 6 premières lettres du nom (espaces non respectés) suivies d'un tilde (~), puis d'un 1.
Comme vous le verrez, chkdsk a effectivement supprimé les fichiers pour moi. Donc, si vous voulez conserver les fichiers, je ne sais pas quoi faire, mais cela les éliminera à coup sûr.
Résultats/Journal Cmd:
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>
J'ai supprimé le fichier têtu en ouvrant 7Zip, en recherchant le fichier et en renommant le fichier via 7Zip. La mienne était une chanson qui avait un espace à la fin du fichier.
chkdsk
corrige parfois des noms de fichiers invalides. Vous recevrez un message sur la suppression du fichier car tous les noms de fichier ne sont pas valides, puis sur la récupération d'un fichier perdu. Vous pouvez ensuite trouver le fichier dans C:\found.000\file0000.chk
. C'est un moyen efficace de supprimer les fichiers problématiques, mais ce n'est pas le meilleur moyen de les conserver.
Essayez de spécifier le chemin UNC (voir Nommer des fichiers, des chemins et des espaces de noms ). Cela contourne toutes sortes de restrictions. Vous le feriez en utilisant la syntaxe \\?\
.
Exemple, si votre fichier était sur votre bureau (et votre lecteur Windows est C :), vous pouvez le faire.
copy "\\?\C:\Users\codeLes\Desktop\Where Have All the Cowboys Gone?.ogg" "\\?\C:\Users\codeLes\Desktop\Where Have All the Cowboys Gone.ogg"
Remarque: Vous ne pouvez pas utiliser de chemins relatifs avec cette syntaxe. vous devez spécifier le chemin complet. Et cela ne fonctionne pas avec la commande ren
, mais avec copy
et move
.
Utilisez Recuva . Il est principalement destiné à la récupération de fichiers supprimés, mais il dispose également d'une option permettant d'inclure des fichiers non supprimés dans son analyse.
Après avoir lancé Recuva, refusez l’assistant et sélectionnez le bon disque. Ensuite, allez dans Options, recherchez et cochez l'option "Rechercher les fichiers non supprimés" et lancez l'analyse. Au bout d'un moment, tous les fichiers du disque (supprimés ou non) seront affichés. Recherchez vos fichiers avec des noms non valides (les noms sont déjà fixes dans la vue), sélectionnez-les, faites un clic droit et enregistrez ("récupérez") quelque part.
Je viens de le faire (sous Windows XP).
L'outil Microsoft DISKEDIT.EXE est un outil de bas niveau permettant de lire et d'écrire directement des données de disque brutes. Vous devriez être capable de charger le cluster contenant l’entrée de répertoire pour ce fichier et de changer simplement le problème "?" caractère à quelque chose d'inoffensif et l'écrire sur le disque.
D'après ce que j'ai compris, l'outil Diskedit de Microsoft (et non l'outil Norton Utilities du même nom, qui ne concerne que les volumes FAT) a été vu pour la dernière fois dans Windows 2000 SP4. Mais il existe un lien vers celui-ci qui peut être trouvé ici .
Pour localiser le bon cluster, vous pouvez télécharger une version d'évaluation de DiskExplorer pour NTFS .
Vous commenceriez par Fichier-> Lecteur ... pour ouvrir le lecteur contenant ce fichier défectueux. Sélectionnez Goto-> Répertoire racine pour obtenir une vue de répertoire. Accédez au répertoire contenant votre mauvais fichier en utilisant les liens MFT #. Lorsque vous y arrivez, le haut de la fenêtre affiche quelque chose du type "MFT # x12345 DIR: 'nom du répertoire", ... blah blah blah ... à partir du groupe x9302AE , ... blah blah blabla"
Passez maintenant à Microsoft diskedit. Commencez par Fichier -> Ouvrir ... et spécifiez le nom du volume C: (si le fichier se trouve sur votre lecteur C:). Laissez le nom du fichier de volume vide. Prenez ce numéro de cluster de départ et entrez-le dans diskedit sous Read-> Clusters NTFS ...-> Cluster de départ (entrez-le sous la forme d'un nombre hexadécimal).
Maintenant, utilisez les touches fléchées pour faire défiler jusqu'au nom de fichier incorrect. C'est en unicode, vous allez donc chercher quelque chose comme "W.h.e.r.e.H.a.v.e .A.l.l. .T.h.e. .C.o.w.b.o.y.s .G.o.... Placez votre curseur sur le mauvais caractère "3F" et tapez quelque chose de sûr, comme 5F ('_'). Choisissez Write-> It pour l'écrire sur le disque.
Il y a un autre endroit à frapper (pas sûr si un ou les deux sont nécessaires). Maintenant, de retour dans DiskExplorer, cliquez sur le Mft # pour le fichier endommagé. Vous obtiendrez un écran avec une arborescence à gauche qui dit "structures". Cliquez sur "Attributs" dans l'arborescence. Il vous montrera une liste d'attributs, dont l'un sera quelque chose comme $ 30 ... $ FILE_NAME. Donc, $ 30 a le nom du fichier. Cliquez sur le nœud du corps situé sous le nœud $ 30 dans l'arborescence des structures. Sélectionnez le menu View-> as Hex. Quelques lignes plus bas, vous devriez voir le nom du fichier à nouveau. .H.a.v.e ... etc. Sur le côté gauche de l'écran, vous verrez la colonne Secteur, qui indique le secteur du disque que vous regardez.
Retour sur le diskedit. Lisez-> Secteurs ... et entrez le numéro du secteur à partir de DiskExplorer. Comme précédemment, faites défiler vers le bas et remplacez le caractère "3F" par le même caractère que ci-dessus. Choisissez Write-> It pour l'écrire sur le disque.
J'ai fait tout ça, et les outils me disent que j'ai changé de personnage, mais pas Explorer. Le répertoire doit être mis en cache quelque part. Après un redémarrage, le changement devient visible.
Essayez d’utiliser un outil tiers tel que l’outil Ken Rename :
ou Renommer le maître .
Voici une liste des outils de renommage de fichiers .
Je les testerais moi-même, mais j'utilise Windows Vista 64 bits; le traitement du fichier peut être différent.
Si ces outils échouent, vous voudrez peut-être essayer Windows PowerShell . Voir Renommer des fichiers sur le blog Windows PowerShell .
Si vous avez installé Cygwin, il devrait pouvoir gérer le fichier. J'ai eu ce problème tout à l'heure et en utilisant rm de Cygwin dans un bash Shell a été capable de supprimer le fichier très bien quand aucune application Windows, y compris Explorer et en essayant d'utiliser la spécification de fichier UNC avec CMD.exe aidé.
J'imagine que mv le ferait si vous vouliez conserver le fichier.
Une configuration de base Cygwin ne prend que quelques minutes et je la garde toujours malgré tout car il y a tellement de bons outils. C'est plus facile que de démarrer Linux, même en utilisant un live CD.
a
.Dans cmd.exe
, accédez au nouveau répertoire et tapez ce qui suit:
ren *.ogg 1.ogg
C'est pour la simplicité. Ensuite, vous pouvez le renommer comme vous le souhaitez dans XP, comme 1.ogg
en Where Have All the Cowboys Gone.ogg
. ogg
n'était qu'un exemple, l'extension peut être n'importe quoi.
Avez-vous essayé de le déplacer dans un fichier portant le bon nom?
move "Where Have All the Cowboys Gone?.mp3" "Where Have All the Cowboys Gone.mp3"
En supposant que le volume en question est FAT32 ou NTFS, essayez d’exécuter chkdsk. Cela devrait nettoyer les entrées de répertoire "corrompues", ce qui signifierait (dans ce cas) supprimer le fichier?. Si c'est le volume de démarrage, vous aurez peut-être besoin d'un redémarrage pour le faire.
Cela devrait marcher (du moins, ça l'a fait pour moi):
dir /X *cowboys*
Cette commande produirait quelque chose semblable à ceci:
08/11/2011 15:21 <DIR> WH5E97~1 Where Have All the Cowboys Gone
?.ogg
Ce WH5E97~1
est ce que vous cherchez!
(Remarque: ce code est totalement inventé, mais devrait être semblable à celui que vous trouverez)
Sachant cela, un simple
rename WH5E97~1 "Where Have All the Cowboys Gone.ogg"
devrait faire l'affaire.
J'espère que ça aide.
as-tu essayé:
type "Where*.ogg" > "Where.ogg"
pourrait fonctionner.
La plupart des commandes internes de Microsoft sont contrôlées avec la présence de Explorer.exe
.
Ouvrez votre gestionnaire de tâches et examinez la liste des processus actifs en cours. Vous trouverez Explorer.exe
parmi eux. Cliquez avec le bouton droit et terminez/arrêter/fermer Explorer.exe
. Ne fermez pas encore le gestionnaire de tâches. Maintenant, allez dans le fichier offensif en utilisant un gestionnaire de fichiers secondaire et essayez de supprimer ou de renommer avec des caractères génériques. Ce sera probablement réussi.
Maintenant, revenez à la fenêtre du Gestionnaire des tâches et cliquez avec le bouton droit de la souris sur la ligne supérieure du message Applications, puis sur le bouton du bas indiquant New Task. Entrez Explorer.exe
. Explorer réapparaît et le fichier offensif n’est plus là.
Essayez cygwin pour renommer le fichier:
la commande serait: mv filename?.ogg filename.ogg
Essayez un joker en déplacement -
move "Where Have All the Cowboys Gone*.mp3" "Where.mp3"
C'est probablement votre meilleur choix, tant qu'il n'y a qu'un seul fichier correspondant au caractère générique.
Si vous avez WinRAR, placez-le sur WinRAR, renommez-le sur WinRAR, décompressez-le.
Ou vous pouvez essayer avec un script VBScript, prendre le prochain script et le sauvegarder dans un fichier avec .vbs extension.
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFile "Where Have All the Cowboys Gone?.ogg", "Where.ogg"
glissez et déposez dans un nouveau dossier, naviguez dans la commande Invite jusqu'à ce dossier et tapez
ren *.* test.ogg
L’interface graphique WinRAR vous permettra de renommer les fichiers sans même avoir à les ranger dans une archive. Je l'ai testé sous Windows 8.1, sur un nom de fichier très long. Travaillé comme un charme.
J'ai également eu un problème similaire avec un dossier. Le nom du dossier était ".min." ce qui n'est normalement pas autorisé.
Renommer non autorisé (cliquez pour l'image)
En utilisant Winrar j’ai pu résoudre ce problème. Ce que j'ai fait était
Add To Archive ... (cliquez pour l'image)
Ceci est autorisé car Windows ne vérifie pas vraiment ce qui se trouve à l'intérieur du fichier .rar. Dès que vous modifiez le nom, extrayez le fichier et vous avez terminé.
J'espère que ça aide.
J'ai eu un problème avec un nom de fichier qui avait un blanc final. Neighter Explorer ni cmd.exe move ont été en mesure de le renommer (ou de le supprimer).
J'ai ensuite utilisé FAR Manager (far.exe dans ConEmu). Il s’agit d’un clone de console Norton Comander fonctionnant sous Windows 10 64 bits.
Avec cela, je pouvais facilement voir et changer le blanc de fin.
OK, pour moi l’outil tiers/ isobuster de projets intelligents a bien fonctionné avec une licence personnelle. Il suffit d'extraire le dossier/les fichiers sur un lecteur Windows NTFS et tous les caractères non-Windows sont transformés en dossier Windows bien formé et en noms de fichiers. Pouah. :) J'espère que cela pourra aider! Je supprimerai les dossiers non conformes lors de la prochaine utilisation de mon système lubuntu;) - Tout ça!
J'ai eu un problème similaire avec 2 dossiers imbriqués avec des sous-dossiers. Je ne pouvais ni renommer ni supprimer certains fichiers (j'ai essayé de plusieurs façons). Enfin, j'ai trouvé la solution: Teracopy.
Installez-le, cliquez avec le bouton droit sur le dossier ou le fichier et sélectionnez teracopy. Teracopy s’ouvrira, puis cliquez simplement sur delete
ou rename
. Il va le renommer ou le supprimer.
Vous voudrez peut-être essayer.
La seule chose qui m'a aidé était de télécharger LockHunter
tuer les processus à partir de LockHunter, puis renommer le dossier. Cependant, LockHunter a également la possibilité de renommer le dossier.
Ce n'est pas une réponse directe (comme dans comment Windows peut-il renommer un fichier) mais cela fonctionne pour moi. Les fichiers illégaux sont généralement sur un lecteur externe, je connecte donc le lecteur externe à mon Android tablette. Cela me permet de renommer le fichier qui peut ensuite être lu par Windows. Cela concerne les caractères spéciaux, mais le problème habituel que je rencontre est un nom de fichier commençant ou se terminant par un espace ou se terminant par un '.'
J’ai essayé l’un des outils tiers FlexRenamer, mais le problème persiste.
Je suis tombé dans la même situation.
En cherchant sur Google, j'ai appris qu'il n'y avait pas de solution native.
... et j'utilise comme Shell le TCC de JPSoft, qui ne peut pas non plus gérer ces fichiers.
Mais, j’ai aussi appris que Unlocker de Cedrick Collomb ( http://www.emptyloop.com/unlocker/ ) est capable de le gérer.
Et je l'avais dans ma configuration. En outre, je le recommande fortement.
Eh bien, au moins cette solution n'implique pas de quitter l'environnement Windows ...
Je suis tombé sur une situation similaire. Aucune des solutions postées n'a fonctionné pour moi, mais j'ai finalement trouvé une solution simple:
J'ai simplement copié le fichier (oui, la copie était encore possible pour moi) sur une clé USB, je l'ai renommé et replacé! Je laisse le soin aux autres d’expliquer pourquoi cela a fonctionné.
Je n'ai pas pu utiliser les utilitaires Windows suggérés pour supprimer "?" et "*" caractères d'un nom de fichier.
J'ai branché le lecteur dans un Raspberry Pi et changé les noms de fichiers.
Utilisez cmd.exe dans ce répertoire avec des caractères génériques. Par exemple:
ren "Where Have All the *.ogg" "Where Have All the Cowboys Gone.ogg"
Le gestionnaire de fichiers 7-Zip (7-Zip.org) renommera les fichiers et les répertoires que XP ne peut pas. Je viens de l'utiliser pour extraire un fichier .tar et renommer le fichier .chm inclus, nommé illégalement. Aucun LiveCD requis.
Tschüß!
Dans la plupart des cas, cette réponse est inutile.
Je me suis laissé berner par les noms de fichiers dont les caractères sont représentés par des points d’interrogation alors qu’ils ne sont en fait que des caractères que les polices M $ par défaut ne peuvent pas afficher.
Dois-je supprimer ce message? Cela pourrait encore aider certaines personnes ...
Essayez d'utiliser le cmd.exe intégré dans la complétion par tabulation.
dir /x
ne aide pas (le NTFS a été créé sans prise en charge des noms de fichiers courts):
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 ? ?????????, ?????????
Essayer de le renommer en tapant/copy'n'pasting le nom ne fonctionne pas:
C:\Temporal\_black> ren "? ?????????, ?????????" bart
Syntaxfehler.
Pour que cela fonctionne, vous devez utiliser tab-completion. Naviguez simplement vers le bon répertoire dans le cmd-Shell, tapez ren
, appuyez sur la touche tabulator-key et continuez à le frapper jusqu'à ce que le nom "correct" apparaisse:
C:\Temporal\_black>ren "? ?????????, ?????????"
puis tapez le reste et appuyez sur Entrée:
C:\Temporal\_black>ren "? ?????????, ?????????" bart
Vous serez récompensé par ceci:
C:\Temporal\_black> dir
Verzeichnis von C:\Temporal\_black
05.10.2015 21:23 <DIR> none\none bart
C'est un peu fastidieux mais jusqu'à présent, cela a toujours fonctionné pour moi avec des fichiers et des répertoires (Windows 7 et 8).
Note latérale amusante: les commandes ren
- dans 2. et 3. sont identiques, mais cela ne fonctionnera pas sans tab -ompletion. Et même si vous avez utilisé la complétion par des tabulations, cela ne fonctionnera plus dès que vous aurez modifié le nom après la variable ren
(par exemple, supprimez et ajoutez un point d'interrogation).
J'ai eu exactement le même problème avec un fichier que j'avais téléchargé. Je ne pouvais pas le renommer ni le déplacer, que ce soit dans Explorer ou en ligne de commande. Cependant, ce qui a fonctionné pour moi a été de le supprimer dans l’explorateur, puis de le restaurer à partir de la corbeille . Je ne peux que supposer que ce processus a "corrigé" certains des caractères non valides, car je pouvais alors le traiter comme un fichier normal.
J'ai corrigé un fichier FLAC comme ceci en utilisant la commande d'ouverture de base de Winamp, en utilisant la fenêtre de l'explorateur de programme. Lorsque je suis allé dans le dossier, j'avais l'option de renommer, contrairement à Explorer.
Désolé un peu en retard, je ne sais pas comment supprimer le fichier mais vous pouvez tous les fichiers du répertoire. Créez simplement un dossier vide, puis utilisez robocopy pour mettre en miroir ce nouveau dossier vide par-dessus celui contenant le fichier endommagé. Cela reflète essentiellement une liste vide au-dessus de ce qui était là.
mkdir Empty
robocopy Empty <badfiledir> /mir